{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Weight Initialization\n",
    "In this lesson, you'll learn how to find good initial weights for a neural network. Weight initialization happens once, when a model is created and before it trains. Having good initial weights can place the neural network close to the optimal solution. This allows the neural network to come to the best solution quicker. \n",
    "\n",
    "<img src=\"notebook_ims/neuron_weights.png\" width=40%/>\n",
    "\n",
    "\n",
    "## Initial Weights and Observing Training Loss\n",
    "\n",
    "To see how different weights perform, we'll test on the same dataset and neural network. That way, we know that any changes in model behavior are due to the weights and not any changing data or model structure. \n",
    "> We'll instantiate at least two of the same models, with _different_ initial weights and see how the training loss decreases over time, such as in the example below. \n",
    "\n",
    "<img src=\"notebook_ims/loss_comparison_ex.png\" width=60%/>\n",
    "\n",
    "Sometimes the differences in training loss, over time, will be large and other times, certain weights offer only small improvements.\n",
    "\n",
    "### Dataset and Model\n",
    "\n",
    "We'll train an MLP to classify images from the [Fashion-MNIST database](https://github.com/zalandoresearch/fashion-mnist) to demonstrate the effect of different initial weights. As a reminder, the FashionMNIST dataset contains images of clothing types; `classes = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']`. The images are normalized so that their pixel values are in a range [0.0 - 1.0).  Run the cell below to download and load the dataset.\n",
    "\n",
    "---"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Import Libraries and Load [Data](http://pytorch.org/docs/stable/torchvision/datasets.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "from torchvision import datasets\n",
    "import torchvision.transforms as transforms\n",
    "from torch.utils.data.sampler import SubsetRandomSampler\n",
    "\n",
    "# number of subprocesses to use for data loading\n",
    "num_workers = 0\n",
    "# how many samples per batch to load\n",
    "batch_size = 100\n",
    "# percentage of training set to use as validation\n",
    "valid_size = 0.2\n",
    "\n",
    "# convert data to torch.FloatTensor\n",
    "transform = transforms.ToTensor()\n",
    "\n",
    "# choose the training and test datasets\n",
    "train_data = datasets.FashionMNIST(root='data', train=True,\n",
    "                                   download=True, transform=transform)\n",
    "test_data = datasets.FashionMNIST(root='data', train=False,\n",
    "                                  download=True, transform=transform)\n",
    "\n",
    "# obtain training indices that will be used for validation\n",
    "num_train = len(train_data)\n",
    "indices = list(range(num_train))\n",
    "np.random.shuffle(indices)\n",
    "split = int(np.floor(valid_size * num_train))\n",
    "train_idx, valid_idx = indices[split:], indices[:split]\n",
    "\n",
    "# define samplers for obtaining training and validation batches\n",
    "train_sampler = SubsetRandomSampler(train_idx)\n",
    "valid_sampler = SubsetRandomSampler(valid_idx)\n",
    "\n",
    "# prepare data loaders (combine dataset and sampler)\n",
    "train_loader = torch.utils.data.DataLoader(train_data, batch_size=batch_size,\n",
    "    sampler=train_sampler, num_workers=num_workers)\n",
    "valid_loader = torch.utils.data.DataLoader(train_data, batch_size=batch_size, \n",
    "    sampler=valid_sampler, num_workers=num_workers)\n",
    "test_loader = torch.utils.data.DataLoader(test_data, batch_size=batch_size, \n",
    "    num_workers=num_workers)\n",
    "\n",
    "# specify the image classes\n",
    "classes = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', \n",
    "    'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Visualize Some Training Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nx00uxHKIGNtuu22lNgD06tUrWD7llFO8/fLLLwe+f/3rX1nvk5B6SNZ9DeUXCCGEEEIIIYQQQggh\npIjgTV1CCCGEEEIIIYQQQggpIiSXkoW61tiI6dZq/vd//zdY3mWXXbxtSz+aNm2acTkmt2C3o9tj\n9YOWLl3qba37AgAzZ8709pFHHplxf5XwjnNu71w+UFfkGzcvvPBCsHz00Ud722rM6pIxe260Dtj0\n6dMD35NPPunt1157LfDpfVhNsI4dOwbL++67r7d33333wKfL/LWEBBDqR9mylFatWnnbxrvV39VU\nUS7boPR8Jk2a5O2dd9458Gl9YxszWhPsqquuCny33Xabt7/++uus22LLEwcPHuztm266KfDp+NLy\nLUB4flevXh34tPRIrIwtR0q+ryE1AuOmAJx44onenjBhQt7b+cEPfuDtGTNmBL6FCxfmtc18yyqr\ngHFD8oFxkyV6bmNzW50XPfLII4FP56vjx48PfG+99VawrPuGYcOGBT5dKv3+++8HvmuuuSba9hqA\ncaPQuXBMC/eOO+4IlvU86/LLLw98S5YsybidQYMGBctDhw71to0xGyuabO8PFBDGTQZyke149NFH\nvd2vX7/AN3nyZG9fdNFFge/NN98MlnWfZu/rjBs3ztv2/pCWdYhJzxSKhjYHJwUh676GT+oSQggh\nhBBCCCGEEEJIEcGbuoQQQgghhBBCCCGEEFJElKT8gn6zKgD06dMn47pWYiG2D71sffqxfevTZde6\nfAkIS5/mz58f+C688MKM7UYRl35kex7tGyz3228/b69YsSLw6XKLtWvXBj5dom7316JFC283b948\n8OmSEfs5W06iy/BtCcemTZu8beU3dthhB2/bUie9Ty0HUNmyJlZaV+qlH7Yk7OKLL/a2vb5icajl\nLXSMAMDGjRu9XV5entFnS4B0WSMANGnSxNtWxkFv176NXi9bGQ69T9vvLVq0CHlStH0NqVMYNxmw\nUjAnnXSSt4899tjAp0sStZQTAMybN8/bdtyz13+3bt28beWLpk2b5u3PPvss8D300EPe1nJRFttP\nVaMElnFD8oFxkwErL6VzTet75ZVXvP3www8HPju3KgT3339/sLxgwQJvjx49OvDFcttq0KDjxuaQ\nMUmxG2+80dtTp04NfBMnTix4e8aOHRv43nvvPW9baQZNLN4LSIOOmxha0gAI58RaBgoIz6OdT+l8\n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\n9VTgq43S2rpAn5++ffsGPl0aYx9rr0v5hVhpWVVk2+7YPmws6nKisrKywHfiiSd6e8KECVntu1SJ\nHVNd2mXPkS4PjfU1MUmFqs57rORao0vOSO0QOx8xWZRYmdDAgQO9PWjQoMA3derUjJ/bbbfdguVH\nHnnE27ZU+tprr/X2vffeG/jylebQJUP2++nSJ1sGlUvJULFicw1dpjVr1qzAFysr1SWp9nrXMWbP\nYax8zcaw9tvyWL1dW5644447IhO6BNeWqJGaJza+xa73ww47zNtr1qwJfPYa1+XxVkZB799e/zrG\nbfm/3qYdQ3Vuo8dhYMtS8YbAueee6237/fU5njlzZuDTx86eG11yHDvfsT7cnrdYvNnzGNu/Pv+D\nBw8OfMuWLfN2t27dAp8usbYSVXq8bSjyC61atfK2LV3XkidWmkGfGxtv+tzYY6zHDSszqMe0FStW\nBD47z+vYsWOlnwPCMc22Tfvs+BqTF9LHxs5HSX48//zzwbLOS/U1DMRlgrQcQ0z6Bwj7SSu/oOPd\njpm2bySbySRDl++9GHvsdR5q5Vz0uGDzDt1HfPHFF4FPx8xxxx0X+KycipZHsN9pr7328vbGjRsD\nn5ZmsPmynpPZvu7TTz/1tpYZAkKJmtg8sir4pC4hhBBCCCGEEEIIIYQUEbypSwghhBBCCCGEEEII\nIUUEb+oSQgghhBBCCCGEEEJIEVG0mrpa28di9Qq1npfWVgG21JbT+hhWB0r7tH6TXTemZWc1NoYN\nG+bt8ePHBz67XCr85Cc/yejLpOECxLV3NDWhvVtTer7ZavXG9m91NX/3u995m5q6mY+v1t7RNhDG\nl9Uzjp2LfHVL7ee0pk6+2yTZk4tmdux87L///t4+5phjMq43evTojL7zzz8/WH777beDZa15eNtt\nt2X87Nlnnx34nn32WW//6U9/CnxWg06j9fFiumY777xz4Pvwww8zbrNUsJq6mph+2NNPPx34Ro0a\n5W2bo8RiM6bvbM9VrE/Ty7Yv/Oyzz7xt9XW1PqHWYiS1gz7HMX33Xr16BT59Hm3+YPXr9Dm2ea+O\nqfLy8sCn8+XGjRsHPh1jNm7191i4cGHg69Gjh7dtvFlt4FJBa6NaPVB9Pqw2qfbZc6P7ba2ZDoT9\nT2x+ZH0WHVd2LqWX7fnX2txWf1N/zvZhWn/V9mE77bRTtK2lyDvvvONt/Z4NINTRtfqN2mdzHb3c\n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\nOy/jerY/z3aMsG2J9WG2n9Rltrb0S5fcP/nkk4Hvkksu8bbN62yJXinStm1bnHjiiX75pz/9qbc/\n//zzYF1dumxLgHV5tO2zlixZ4m1bchqTBNM5cbt27QLfjjvu6G1dOgkAO+20U7Cs5RdsaaWO1U8/\n/TTwxcogdYzZ76S3afvFZs2aeTuWR5YS+jvb61bLGFh0ebyVWNDbsf1ETNJBU1WerfutmOyc7Td0\naa2VGtLyD7G+1/r0981WvqiUsPNc3Tfb2NA+O5do3ry5t23psj7+dgxbtGiRt2282ZjWubiOfSCc\ng8fuOdj+Vcs/xKQZGqJkUE2gS+6BMP5iEnn2nOr+x0qq6JgC4qX0sX2Q3NH9cGXLGn0N22Ov+5re\nvXsHPt2H2BxBj1H2Wtdjoo0JO8/X27Fjqb1Xp4nl3XUNn9QlhBBCCCGEEEIIIYSQIoI3dQkhhBBC\nCCGEEEIIIaSI4E1dQgghhBBCCCGEEEIIKSKqpambrZZEmzZtgmWto9GiRYvAd8QRR3i7e/fugU9r\ni2mdLyDUaLKacFovLqa3a9tqdYi0BqdFa+SVl5cHPq1DZjUvtRZJQ9FCnTVrVkaf1lGJ6YPGYi+m\n4RzTPMyFmM6h9cU0pGMawjHdMa1LZTWppk+fnnF/pU7s/O6///7BstZostesPqYx3brqkK3WstWA\n07piMeyxyFbLnBCSHbnoM+p+ROudAsDixYsrXQ8I+4lcxh2L3o7NbXTfYPXwtB6rzsFsW21/Y3Vc\nS5Hvv/8+yOG0JuOBBx4YrGvHac2RRx7pbZsHal04G296mza31XmnHTN03m3HoTlz5gTLzz77rLcn\nT54c+O677z5v33HHHYHv5JNP9rZ9B4ZudyzPs/qbuq0NRf9SH4PYNW7jS8+DrOahzn3sfEljj7He\nh9VXtudRb9f69Hm0/YZejumf2mtBL8dy6YaI1dvW5yamt2zPsdYxtbGh1125cmXg0zFc1X2DVq1a\nedveH9BxbGNKjzc2NvQ4ZWNB95sxbVCSPVa7VN/zsVqlOhZtH6bPlR3f7JgSo77pnjYk1q1bl9Gn\n9XBtn0Hyg0/qEkIIIYQQQgghhBBCSBHBm7qEEEIIIYQQQgghhBBSRFRLfkFz/PHHB8snnXSSt20p\nhH7k2pYa6vIH+5i+LiGxn9PlHbp8w37OlhrZ5W7dunm7f//+yIQtC9ESD3b/ukxElz0BYXnBl19+\n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\nQkqNon9SlxBCioW0vLlxWuJ8C5JfE+fUbasIIYQQQqqPiOwA4P58b+gSQgghJDd4U5cQQmqPYUiE\n2xchKak/xbFcghBCCCElgHNuk3OOL+wkhBBCagnKLxBCCCGEEEIIIYQQQkgRwSd1CSGEEEIIIYQQ\nQgghpIjYJpeVRaTePtbbs2dPb2+//faBb8OGDd4WkcDXuHHjYHnjxo3enjNnTl5tsfuooaehVzjn\n2tXEhgtNbcfN1ltvHSxvu+223m7XLvMh+/LLL7Pe5jfffJNxH02aNAl88+fP9/a3336bcR+1gXNO\nql6r7qnPfU0MHV/bbBN2r4sXL67t5hQK9jVZ0rRpU29vt912gW/VqlUF31/Hjh2D5RUrNr+Uvq77\nGjBu8qJVq1bBsh57Nm3aFPi+//57b9u8w45Ruj/aaqutMq771Vdf5djigsO4IfnAuCkAev7UunXr\nwBfLYex4p8emhQsXBr7vvvuuOk0sNIybAqDPt40FnYvYscfOrdasWePt8vLyQjax0DBuSM5wDp47\n+v7K/2/vzoPtquq0j/8s3wZkCAkkhITMIQkhCSFMCRhAwDAoTTel3aXYiErT2AwtPahtV4MFaoFi\ntVo0oIhNVxdQFsrQyqDM85wQIAlkIPNIEhJIZNDu5v3jrXf183vIWbn3cu5wuN/PX79d695zdu5e\nZ+21d/Z6jvvIRz7ScNvvvfk9Hv3ZrVu3pjadW7fSnLhdN3WbRS8+fIDXg6B/1O259NJLS603eCMi\nnn766VJ75zjooIPS9rx580r9+c9/vs3vr/8Ov5njF1fqfdzwXdbRX/yg23333dO2TjbOPvvs1KbH\nbebMmalN+2nfvn1Tm09uBw4cWOpDDjkktf3t3/5tqfWmC3ouPfbt+Yx+6lOfKrX/B8K3vvWt979j\n3YOxRtT6hp5Phg0bltquv/76dr/+tt5DnXnmmWn72muvLfW6desavm4XxS7Rbzrg+OOPT9t6PtP5\nSUS+yevzjrVr16bt/v37l3qnnXZKba+++mqpFyzo9u826tX9poseCuhSXfRv6tX9plmGDh1a6s9+\n9rOpTa+z/D8NBw0alLb/8R//cZt1RL5x1wPQbxrw6/PaNbnORYYMGZLa9Pyi//EdEdGnT5+0feed\nd5b61ltvbfh+PqYo5jdAz6BjSHvu6Sm9vxKRP98TJ05MbZMnTy61PwQxa9astD1p0qRSP/HEE6lN\nH/CcP39+O/e46do81hC/AAAAAAAAAAAthJu6AAAAAAAAANBCuiV+QR/Hbk+2kmY9XXfddantmGOO\nKbUvQ/Tl8MpzDkeMGFHqX//616ntlFNOKbUv79DHyn//+9+nNv33+pKRHpYt1TJOP/30tP21r32t\n1B6VoO699960feyxx5b6vPPOS20/+9nPSv3oo4+mtu985ztpWyMe/GfvuOOOUh944IGpTZdkX3LJ\nJalt2TJW93SXti7f0rzkiIgJEyaU+rjjjktt69evT9u1fGe0Jh3rp0yZktpq8QsdjUZYuXJl2t64\ncWPDn/0gLOPuDc4999y0PWfOnFJ7VqHOSQ4//PDUpueviLy8bPDgwalN+1EPiF/o1Wqf03HjxqVt\nnQf7eHPFFVeU+uabb05tCxcuLLVnWvpSR+1XP/rRj1LbXXfdVWqPttKoKcaenkWjgS688MLUppne\nY8aMSW2nnXZaqb3f+LbOjXwZvX5fyWWXXZbaGH96jtpy6e9///tpW6On/DpXr3v8NT3GQ6MbRo8e\n3fA92zOm9ICoBqBXamvkwgEHHJC2v/KVr5Ta57a1jFvNyfXvzPJ7cxrH6tGsmgOvEa4REf/xH/9R\n6qeeeiq1NSNu4v3gSV0AAAAAAAAAaCHc1AUAAAAAAACAFvKhdi5haPo6BY1UiIj40pe+VOpzzjkn\ntelj1f4NmvptqroUPiLi6KOPLvVLL72U2ubOnZu29XFpXx6tS1ufe+651Pb888+X+uqrr274e01c\nBjLz3XffbZwr0YM0q9/oEi5/jF6XbPm3fp944oml9uWr+m2+uuwsIuKxxx4r9datW1PboYcemrZ1\nOethhx2W2g4++OBS+7eX77nnnqX2fqtLJn/4wx9GM7z77ruNO2AP0hljTTvfv9T+ubzoootK7d8O\nPX78+IavuXz58rStfc/HjB6m1401zbDXXnulbY3feD9L/k466aRSa1xQRI/rR/SbDrj77rvT9q9+\n9atSe5/abbfdSq3f+hvx3uVk3/72t0vt/UaXyvtS/W7Q6/rNqFGjSu0RB7oE3uMXOuqaa64p9V/+\n5V+mNv/G+7bypYY6t37mmWdS21e/+tVSewTa+9Dr+k1HabScjiERORrB6fzZY+7+8Ic/pG3/5nGl\n897dd989tX3hC18odRdFkNFvRJ8+fUo9cuTI1HbBBReUesuWLalNoxI8CkZjBv3z7v1GI1302iki\n4qGHHiq1n6d0fqX3AzoR/Qbt1tuuwXUe6p91/Xx7/GVtHqLzII0SisjXVh7FqfNc37f58+entpdf\nfrnUPrfRc9s//dM/pTaNhvB/w/uIY2jzWMOTugAAAAAAAADQQripCwAAAAAAAAAthJu6AAAAAAAA\nANBC/s/2f6SDLyx5S//1X/+V2iZMmFBqzUmNiNhpp50avqZmpb7xxhsNf89zMy6++OKG++I5qqtW\nrSr17NmzU5vmph5wwAGpTfPsvvjFL6a2T37yk6XWnI6IiA9/+MOl1twhvDcTUPNYNLfEeTat5jAd\nd9xxqU0zKPXYR0T89V//dcP38yxozQhbt25datN+5DljCxcuLPXEiRNT25/8yZ+UulmZumibWuap\n5n7/6Z/+aZtfUzOaIyLOOuusUteyUD2H+/3ksaK5NAszIuLjH/94qf3coucsH+vvvffeUp966qmp\nbdGiRWn78ccfL/Xpp5/ecN/83OpZ4+g5Tj755FLrdwdE5OxCzyTT85Dn7fpcQ7MrPdfwoIMOKvV9\n992X2jZv3lzdd7x/Op/UvuB8/lA7F+hc13NTf/CDH5Tav5/itNNOS9t6/H1+ru+vc9mIiEmTJm2z\njoh49NFHS33ddddt+x+ApvnjP/7jtK05zatXr05tOv74PPfNN99s+B7+szpv8fxd/U6MXXbZJbXp\ndw14X0TzXX755Wlbr598fNHc2jlz5qS2adOmlXrnnXdObXq+8QxlzfCNiPjd735Xar8G13572WWX\npTbNr3z44YdTm14/NTHnEsB21L5HSr+Dxscave7x74DQeYiOFxH53OJzV/+s6znLz1E6n/F7Q/p9\nW0cddVRqu+eee0rdHWMNT+oCAAAAAAAAQAvhpi4AAAAAAAAAtJBOi1/wmAP1ne98p9S+nEsfc/Zl\nYYMGDSq1L68YOXJkqfv375/aBg4cWOphw4alNl/aqr/71ltvpTZdMuv7/frrr5fal5f867/+a6l1\nea6/Jsuss8985jNpW5cP+9JmXXq6YsWK1KbHau7cualNj78ve9VH832J0MaNGxu+jrfpI/ivvvpq\natt///1L7f1Wl9368rlf//rXga7x9a9/PW3rEkRfHlZz8803p+1rr7221Icddlhqe/rpp0vNuNBz\naURKRB6z/uVf/iW1vfLKK6XW81VExJlnnlnqHXbYIbVNnz49bet56bzzzkttF154Yam/8IUvpDaN\n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\nW7BgQan79++f2nypvj667cuCNm/evM19iciPY/uSpV133XWbtb8HS6AjDjnkkFJv2rQptenfXPtJ\nRI488L/jq6++Wmp//F6XqPnj/7r0yNs84kNf1/utLj3TfhKR4xdmzpyZ2lasWFFqX/Ktyxiefvrp\n6E1qcQtOx6X2LAHV5Vo6fkTUYxvas2/XXnttqf/+7/8+tWn8g8cvdHQZPUtgm0M/z/431bH/jTfe\nSG1XXHFFqf08oJ/v3XbbLbXpeScijxO+9Ef5uVXHRfpCz6LH36N99Lj5uU3PNVOmTElttfOCRkJF\n5P740ksvtWGP0VnuvffetK2xGr6MvVU+x+2JJUJzaPyBx47pfNlj7nTe7UvjNYpqn332SW0eN6Rz\nZo8kq0VI6f74e2gEH9rOo+V02bHPJzXazue+kyZNKvXQoUNTmy6R9uvqW2+9tdTPPvtsavvEJz6R\ntseNG1fqf//3f09tuj8HHnhgatPzps+99LrLIxCXLl0a6D61+XR7HHfccaW+77773ve++Hbt/ozH\netauEXszPUYR+f6X/w11HPL7JnoP0Y+Znlv8etz7l0YueKSnHkO/BtP91piIiIiTTjqp1D//+c+j\nq/GkLgAAAAAAAAC0EG7qAgAAAAAAAEAL4aYuAAAAAAAAALSQpmXq1njWkuY0ebaS5mN4Ls5rr71W\nas2tcAsXLkzb+jqe9eMZG88880ypPWvq4IMPLrVn0mm+z+zZs1Ob5kmNHTs2tR1zzDGl7mgOzAeJ\n5qps2bIltWmO7aGHHpraNBtXM3S9bePGjalNt2v5XZ7FPGDAgLStfdP7u77H8ccfn9pqGWWal+g5\nzZoL1dsydb/xjW+kbf1M+ed70aJFpZ47d25qu+aaa0p9xBFHpLbhw4eX+u677264L/5+O++8c6k9\nI0j3JSLnAnmumWYmO+17mj8WkXOnPfdb99Xf76abbmr4fshquV/6mdWMuYiIyZMnl1rzDiPyWPPc\nc89V319zoLS/Oc8Aa5X8zd5o+fLlpdYs94ic9eXnFv1Zzx/0vOVaDpjOyTwvHl3rnnvuSdv6efdz\niuqKz7e/h/apWo7gd7/73U7bJ2ybzln92OjY4N8BoeONn4v23XffUvsY0q9fv7Q9Z86cUp9wwgmp\nTfu05x5qn6plxqPtNAs3IuKtt94qtWdJfvSjHy21npcicp6/H2+dX3rf0Gugiy66KLX594XccMMN\n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\npbYpU6aU2udlZ5xxRsPX7M1qES0+f9BzhPcLnaP672nsk49RtXuRPrfSPqT397a1P8r3p6vxpC4A\nAAAAAAAAtBBu6gIAAAAAAABAC+GmLgAAAAAAAAC0kE7L1D300ENL7Rltmgc6fPjw1KZ5Tq+//npq\n09ySVatWpba+ffuW2vMuXn755VJ7zmR7csj0Zz2TTt9z//33T21Lly4ttWd+au4UMs8E/P73v9/w\nZzVbdP369alNMwo992vkyJGl1uy6iJx367/nuSmac6m5T84/C9pvNZMqIuK6665r+Dr4X3osfDxZ\ntmxZqT0fSjOY/Pc0Z8zzkjSb0jPB9fh6Ro+PPZol5jljuj86JkbkzDnPB9Of1TyqiPdmkKFjPKdJ\n7bTTTqX2bEDNWPZj8fDDD7f5/TV33LO99T3/8z//s82vie6lcyLNBIvI8w7P/vZMb+UZ3vo63od9\nrELPofMZz2nXeaiezzqLZ9JpP/K2Wp49Op8eD79eUf7Z13mS53uPGzeu1P49Dz5H1hxLv87SuY/n\nFSrvU7V/BxrzY6znEc1Jjsj5s1dffXVqO/fcc0ut17UROQPT56U6L/K+oL/n+/rmm2+mtgEDBpT6\ngQceSG2azTxx4sTUNm/evFJ7n+6NanPYtvryl7+ctvU7Yfz7HDT/ds6cOantyCOPLLX2k4jcj3ws\n0GvniNxvNM89It9L8v521llnlfqSSy5JbToXW7JkSWrTOZvPw/T6rbd/l4VeS+u1c0T++/r9F/2+\nCL8G177gmdw6D/K5tKsdG31dn1vp+/u+6f0Iz332e5qdgSd1AQAAAAAAAKCFcFMXAAAAAAAAAFpI\np8UvHHDAAaX2ZRq69MMfR9al6/44tj7SP3DgwIbv7cte9TV9OYcvEdMlRB7joI9c+77pEiJfkq38\n91j22Jgv09HH3P2xel32vmLFitQ2d+7cUvvx122NcIiIWL16dal9WYi2ReS+6UuPdBnslClTUtt+\n++1Xao9f0KX0/u/V5TO9cUmH0r+FL5PQJTo+LujP+rIQ/Zv6sdclYL4cUGMUPDbBj5NGr9SWQ/m+\n7b333qX2iAUdz/w1NU4EneOMM84otS8P08+wR6sccsghpZ42bVpq27hxY9o+4ogjSu1L0ryvqt4+\nTvRkOmfwaB/9TPvcYuHChQ1f05cg6nnJlyDqUjf0LLVj45//zuZjSG1MefbZZzt7d1DR1qgCnxPr\nvMXnsrNnzy61xtpFvDdeSpe8axxfRD4X+vJZNIfGDPi1lJ5jfJ6yefPmUvt5oracWa/P/LpWr4/8\nNb2f6rW0981aVMejjz5aal3SH5H//cQv5GsKjU2IyPdW9Po0Isf/+NJyjSfQa6SIfPynTp2a2vQ6\nTK9tInJfvOOOO1Lb4MGD07becxo9enRq037rfUjvHficSftm7bPgbXqP6+CDDy61jom9hf77/fpc\n+6GPUXr96uOOji8+fuh7eFyZRyXU6NzGYzP13qC/pv47NK4oIuLpp59u8/t3FE/qAgAAAAAAAEAL\n4aYuAAAAAAAAALQQbuoCAAAAAAAAQAvptExdzezxbEfNvOjTp09q07wTz8rQvEDPndPsHc+g1FwN\nz9X0XBjdN88F0uwnz4HSbd83zSzy7BU1ceLEtD1nzpyGP9sbeF5b7W+nPGdOt/14a/aP95vp06eX\n+pVXXklt3o80R2Xx4sWpbdSoUaX2DOlavpN+FsjDbKz22dNtz8jesGFDqT0XRzOg/Pd0zPIxSvuQ\nt3n/1XzMWhaq51MNHz681J6Hpvvt2VGLFi1q+B5oDj2mP/vZz1LbyJEjS+05md/73vdKPWjQoNR2\n4403pm3N2D3uuONS2+23397OPUZPoJlhngnv5yVVyxhcv3592tbMeB8na6+D7lXLHNV5gc97OmPO\n4Ll3tffQ7xJwuq9tzX5F59A5Q0Q+h/m4cMIJJ5T605/+dGpbtWpV2tbvD9m6dWtq82xFNJ9eW/jc\nU8d//14ZzTF1mrHscxi9tvL57LJly7a5XxHv7Qs6F6+NfZMnT07bt912W6m/+c1vprZavrD+mz6o\n3zvRt2/fNFc8/fTTS33nnXemn9Xj78dm/vz5pdbrEOffo6R/Yz+m2v98vNFtnxf7uUfzcD2LWX/W\nj7+qZUb7fSz9WW/Tf7/mBNe+A+GDSv/9tb+9t9W+80b/9j4OaX/S71OKyN9j43xOrONQ7bsEapm6\n/n5k6gIAAAAAAAAAEm7qAgAAAAAAAEAL4aYuAAAAAAAAALSQpmXq9u/fv2GbZ2VohtOWLVtSm+ZV\nek6J5qR4ftjOO+9cas+k00xKzdeNeG/unGZUrlu3LrVpTpDnaGhmkf97NaPGM1313zhhwoTU1tsz\ndV0tv00zbj2jbfDgwaXW3J2I3B88u3TJkiUNf8+Pv2a+aF+MyMff+98hhxxS6htuuCG1kaPbNnq8\nPQdb8+E8l0fHGs8Aq/3t9dh7P9D3837o/UIzfGoZc/5v0tf1PDR9D/pP19O/+RNPPJHaNPPNs5CP\nPfbYUu+7776pbcaMGWl7/PjxpV69enVq0wyyadOmpbYnn3yyuu/oPrWMUR0bfJzy+ZPy+cOkSZNK\n7eMWeq7adwnoeNNZ473OZ31uW8vI8/lzW38PXcu/H6I2F6l9r4hn82qOrs+9almpaA79m/vfW883\nfrw1s1+vTyLy9bKfQ/S85TmX+rOeXek5pjqH9e8g0fOdz2+ef/75Uu+///6p7d577y2131fQ3MsP\naqbuli1b4r777ivba9euLbXm3Ubkezl+TaxzT78uWbBgQakPPvjg1KbzXR/79TrMr4/12EyZMiW1\neb/VPu3HWN+z9h1P/pr6s35+1c+UZ/hq3vCVV17Z8DV6gz322KPU/v00em/EzxF6PH2M0Px2z1rW\nMcL7tl8v6/fM+Nxa79X5mKX9xMdW7WtDhgyJrsaTugAAAAAAAADQQripCwAAAAAAAAAtpGnxC/vt\nt1/DNl+KoY9j++PQ+iizLzvTR/HXrFmT2vTR7dGjR6c2fcRbl0dHvPdx/912263U/ii+LlPy19Gl\nRnvvvXdq06UH/pq6PXDgwEBj+li7L2PQv50/Rq/LAH3JyLJly0rtS2+0//mSDffaa6+VuhYN4p+F\nkSNHVl/3//MlK71xGUcjCxcuLLVHmOiSQP+b6XIx/1zq37u2zMfVlsrWfrZ2PL2ttlRbl7nV9hPN\n4f3ttNNOK7UfmzPPPLPUfmx0/PJx6Oqrr07bunTuy1/+cmo7/PDDS/3AAw9U9x09h44xvuRx8eLF\npfY+tXz58oav6TFUOrfypbPEMfRcbY1f6CwdfQ+f6zTjNdF8fpx0jPHxRs9bPifVa6Dt/ay/LppP\nr2V9DNFrUm979tlnS3322WenNj3feJyYHn9frqzX2d4X/Nyj12+6ND8iL7v2mKpG++L742OP34Po\nDWbNmlVqjeyKyH8Pj9UcN25cqf26aNSoUaX2Oawuife/t16jedyGjiEeceDHWJfoe6SMvr+Pd++8\n806p/Tpf960WI6qvEZHvBzz88MPRm2kEgkcV6Gffj73+vf2ezogRI0rtsT/Kr7N8W/u3R6PWjn2t\nP+v9ze6YV3PVDwAAAAAAAAAthJu6AAAAAAAAANBCuKkLAAAAAAAAAC2kaZm6mnHhNF8kImf9eOaE\n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\nC/m/YDzmKfJhTeAAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1800x288 with 20 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "    \n",
    "# obtain one batch of training images\n",
    "dataiter = iter(train_loader)\n",
    "images, labels = dataiter.next()\n",
    "images = images.numpy()\n",
    "\n",
    "# plot the images in the batch, along with the corresponding labels\n",
    "fig = plt.figure(figsize=(25, 4))\n",
    "for idx in np.arange(20):\n",
    "    ax = fig.add_subplot(2, 20/2, idx+1, xticks=[], yticks=[])\n",
    "    ax.imshow(np.squeeze(images[idx]), cmap='gray')\n",
    "    ax.set_title(classes[labels[idx]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Define the Model Architecture\n",
    "\n",
    "We've defined the MLP that we'll use for classifying the dataset.\n",
    "\n",
    "### Neural Network\n",
    "<img style=\"float: left\" src=\"notebook_ims/neural_net.png\" width=50%/>\n",
    "\n",
    "\n",
    "* A 3 layer MLP with hidden dimensions of 256 and 128. \n",
    "\n",
    "* This MLP accepts a flattened image (784-value long vector) as input and produces 10 class scores as output.\n",
    "---\n",
    "We'll test the effect of different initial weights on this 3 layer neural network with ReLU activations and an Adam optimizer.  \n",
    "\n",
    "The lessons you learn apply to other neural networks, including different activations and optimizers."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "## Initialize Weights\n",
    "Let's start looking at some initial weights.\n",
    "### All Zeros or Ones\n",
    "If you follow the principle of [Occam's razor](https://en.wikipedia.org/wiki/Occam's_razor), you might think setting all the weights to 0 or 1 would be the best solution.  This is not the case.\n",
    "\n",
    "With every weight the same, all the neurons at each layer are producing the same output.  This makes it hard to decide which weights to adjust.\n",
    "\n",
    "Let's compare the loss with all ones and all zero weights by defining two models with those constant weights.\n",
    "\n",
    "Below, we are using PyTorch's [nn.init](https://pytorch.org/docs/stable/nn.html#torch-nn-init) to initialize each Linear layer with a constant weight. The init library provides a number of weight initialization functions that give you the ability to initialize the weights of each layer according to layer type.\n",
    "\n",
    "In the case below, we look at every layer/module in our model. If it is a Linear layer (as all three layers are for this MLP), then we initialize those layer weights to be a `constant_weight` with bias=0 using the following code:\n",
    ">```\n",
    "if isinstance(m, nn.Linear):\n",
    "    nn.init.constant_(m.weight, constant_weight)\n",
    "    nn.init.constant_(m.bias, 0)\n",
    "```\n",
    "\n",
    "The `constant_weight` is a value that you can pass in when you instantiate the model."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "\n",
    "# define the NN architecture\n",
    "class Net(nn.Module):\n",
    "    def __init__(self, hidden_1=256, hidden_2=128, constant_weight=None):\n",
    "        super(Net, self).__init__()\n",
    "        # linear layer (784 -> hidden_1)\n",
    "        self.fc1 = nn.Linear(28 * 28, hidden_1)\n",
    "        # linear layer (hidden_1 -> hidden_2)\n",
    "        self.fc2 = nn.Linear(hidden_1, hidden_2)\n",
    "        # linear layer (hidden_2 -> 10)\n",
    "        self.fc3 = nn.Linear(hidden_2, 10)\n",
    "        # dropout layer (p=0.2)\n",
    "        self.dropout = nn.Dropout(0.2)\n",
    "        \n",
    "        # initialize the weights to a specified, constant value\n",
    "        if(constant_weight is not None):\n",
    "            for m in self.modules():\n",
    "                if isinstance(m, nn.Linear):\n",
    "                    nn.init.constant_(m.weight, constant_weight)\n",
    "                    nn.init.constant_(m.bias, 0)\n",
    "    \n",
    "            \n",
    "    def forward(self, x):\n",
    "        # flatten image input\n",
    "        x = x.view(-1, 28 * 28)\n",
    "        # add hidden layer, with relu activation function\n",
    "        x = F.relu(self.fc1(x))\n",
    "        # add dropout layer\n",
    "        x = self.dropout(x)\n",
    "        # add hidden layer, with relu activation function\n",
    "        x = F.relu(self.fc2(x))\n",
    "        # add dropout layer\n",
    "        x = self.dropout(x)\n",
    "        # add output layer\n",
    "        x = self.fc3(x)\n",
    "        return x\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compare Model Behavior\n",
    "\n",
    "Below, we are using `helpers.compare_init_weights` to compare the training and validation loss for the two models we defined above, `model_0` and `model_1`.  This function takes in a list of models (each with different initial weights), the name of the plot to produce, and the training and validation dataset loaders. For each given model, it will plot the training loss for the first 100 batches and print out the validation accuracy after 2 training epochs. *Note: if you've used a small batch_size, you may want to increase the number of epochs here to better compare how models behave after seeing a few hundred images.* \n",
    "\n",
    "We plot the loss over the first 100 batches to better judge which model weights performed better at the start of training. **I recommend that you take a look at the code in `helpers.py` to look at the details behind how the models are trained, validated, and compared.**\n",
    "\n",
    "Run the cell below to see the difference between weights of all zeros against all ones."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# initialize two NN's with 0 and 1 constant weights\n",
    "model_0 = Net(constant_weight=0)\n",
    "model_1 = Net(constant_weight=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nxJPTqFEjzc/PX4+1ZEQ/phbr45xzruFq5EE8NcHvLWa89kDunHPO1WEeyJ1zzjUYjz76aHsRGfHh\nhx82D8sWLVrUtKCgYDDAv/71rzYHH3zwLpv5XHrppT0GDhxYGD769u07JC8vb8T69euzHkcb3GA3\n55xzDdeUKVM6Dh8+fOPkyZM77rPPPssSPe+uu+5aCiwNXx977LH9jj322LXt2rVLaOOf7du306RJ\nkxRqXL2sf5NwzjnnasP69esbvffee60feuihr/7xj390TPU699xzT8evvvqq2e23374MoKysrNEp\np5zSd6+99ho0aNCgwscee6w9wJ133tnpkEMO6T9q1Kg9f/CDHwyoqKjgpz/9ac+CgoLBe+65Z+H9\n99/fAeDrr79uUlRUNGDgwIGFBQUFg2fMmNE6mfp4Ru6cc652nXtuL+bPb1mj1xwyZDOTJkXbqvi/\nnnjiifZjxoxZv/fee2/t0KFD+Ztvvtly9OjRm5P5mEWLFjWdOHFiz1deeWVRmGHfcMMN3Q4++OCy\nZ5555qvVq1fnFRUVDTr22GPLABYsWNBy3rx5C7p27brj4Ycfbv/xxx+3+OSTTxYsX7688b777jvo\n8MMP3zhp0qSOhx566Ppbb711RXl5ORs2bEgqyfaMPEc98wysXJntWjjnXP3x9NNPdzz99NPXAZx0\n0klrH3300aSy8vLycs4444x+N9xww9IhQ4ZsDctff/31tnfccUe3gQMHFh5wwAEDtm7dKiUlJU0B\nRo8eXda1a9cdAG+++WabU089dW3jxo3p1atX+X777bdx1qxZLUeNGrXpySef7HzllVd2nzNnTosO\nHTok1Fwf8ow8B5WWwqmnwsSJ8OtfZ7s2zjlXw6rJnDNh5cqVebNnz26zaNGiFhMmTGDHjh0iIlpR\nUbEk0Wtce+213bp06bL98ssvXxNZrqpMnTq1ZOjQoVsjy2fNmtWqZcuW1QblsWPHbnzjjTcWTZs2\nrd25557bb8KECSsnTJiwprrzQp6R56CSEntevDi79XDOufri0Ucf7XDCCSesXbZs2cdLly79eMWK\nFfN69uy5bebMmQn1R7/yyiutpkyZ0nny5Mm7rHB38MEHl91+++1dKyosZr/11lstol3jwAMP3DB1\n6tSO5eXlLFu2rPGcOXNajx49etNnn33WtGfPntuvuuqq1WeffXbpBx98kFS3Q8YCuYhMEpFVIjI/\n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\n1WH/H45+HJukUKKHAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 2 Epochs:\n",
      "Validation Accuracy\n",
      "    9.675% -- All Zeros\n",
      "    9.675% -- All Ones\n",
      "Training Loss\n",
      "    2.305  -- All Zeros\n",
      "  478.745  -- All Ones\n"
     ]
    }
   ],
   "source": [
    "import helpers\n",
    "\n",
    "# put them in list form to compare\n",
    "model_list = [(model_0, 'All Zeros'),\n",
    "              (model_1, 'All Ones')]\n",
    "\n",
    "\n",
    "# plot the loss over the first 100 batches\n",
    "helpers.compare_init_weights(model_list, \n",
    "                             'All Zeros vs All Ones', \n",
    "                             train_loader,\n",
    "                             valid_loader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see the accuracy is close to guessing for both zeros and ones, around 10%.\n",
    "\n",
    "The neural network is having a hard time determining which weights need to be changed, since the neurons have the same output for each layer.  To avoid neurons with the same output, let's use unique weights.  We can also randomly select these weights to avoid being stuck in a local minimum for each run.\n",
    "\n",
    "A good solution for getting these random weights is to sample from a uniform distribution."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "### Uniform Distribution\n",
    "A [uniform distribution](https://en.wikipedia.org/wiki/Uniform_distribution) has the equal probability of picking any number from a set of numbers. We'll be picking from a continuous distribution, so the chance of picking the same number is low. We'll use NumPy's `np.random.uniform` function to pick random numbers from a uniform distribution.\n",
    "\n",
    ">#### [`np.random_uniform(low=0.0, high=1.0, size=None)`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.uniform.html)\n",
    ">Outputs random values from a uniform distribution.\n",
    "\n",
    ">The generated values follow a uniform distribution in the range [low, high). The lower bound minval is included in the range, while the upper bound maxval is excluded.\n",
    "\n",
    ">- **low:** The lower bound on the range of random values to generate. Defaults to 0.\n",
    "- **high:** The upper bound on the range of random values to generate. Defaults to 1.\n",
    "- **size:** An int or tuple of ints that specify the shape of the output array.\n",
    "\n",
    "We can visualize the uniform distribution by using a histogram. Let's map the values from `np.random_uniform(-3, 3, [1000])` to a histogram using the `helper.hist_dist` function. This will be `1000` random float values from `-3` to `3`, excluding the value `3`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\naoSBLkmN+P8c1uqkdrh6HQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "helpers.hist_dist('Random Uniform (low=-3, high=3)', np.random.uniform(-3, 3, [1000]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The histogram used 500 buckets for the 1000 values.  Since the chance for any single bucket is the same, there should be around 2 values for each bucket. That's exactly what we see with the histogram.  Some buckets have more and some have less, but they trend around 2.\n",
    "\n",
    "Now that you understand the uniform function, let's use PyTorch's `nn.init` to apply it to a model's initial weights.\n",
    "\n",
    "### Uniform Initialization, Baseline\n",
    "\n",
    "\n",
    "Let's see how well the neural network trains using a uniform weight initialization, where `low=0.0` and `high=1.0`. Below, I'll show you another way (besides in the Net class code) to initialize the weights of a network. To define weights outside of the model definition, you can:\n",
    ">1. Define a function that assigns weights by the type of network layer, *then* \n",
    "2. Apply those weights to an initialized model using `model.apply(fn)`, which applies a function to each model layer.\n",
    "\n",
    "This time, we'll use `weight.data.uniform_` to initialize the weights of our model, directly."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# takes in a module and applies the specified weight initialization\n",
    "def weights_init_uniform(m):\n",
    "    classname = m.__class__.__name__\n",
    "    # for every Linear layer in a model..\n",
    "    if classname.find('Linear') != -1:\n",
    "        # apply a uniform distribution to the weights and a bias=0\n",
    "        m.weight.data.uniform_(0.0, 1.0)\n",
    "        m.bias.data.fill_(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Net(\n",
       "  (fc1): Linear(in_features=784, out_features=256, bias=True)\n",
       "  (fc2): Linear(in_features=256, out_features=128, bias=True)\n",
       "  (fc3): Linear(in_features=128, out_features=10, bias=True)\n",
       "  (dropout): Dropout(p=0.2)\n",
       ")"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create a new model with these weights\n",
    "model_uniform = Net()\n",
    "model_uniform.apply(weights_init_uniform)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nf7nL6tWrs6+88spO8+bNa9C9e/fcBQsW1H322Wcb9+jRI7dbt265Y8eO7bh7924DaNeu3Qnf/e53\n2+Xm5vZ4+OGHmw0YMOC4cePGHdOzZ88exx577PHTp09vMGLEiM4dOnToee2117YtWpfBgwfvWr58\ned0dO3bY5s2ba9WrV6+gZ8+eu95///36ALNnz240bNiwHQD33ntv8xNOOKFH9+7dcy+55JIO+fn5\nxHVYu3ZtNsCPf/zjNh07duzZt2/f484999xOya04jz32WLPka96zZ4/96le/avvcc881i1tuXnjh\nhUbdu3fP7d69e26PHj1yt27dWqbsoBYNERGpXFdddQzz5xdrsj8sPXvu4uGHVx7OKfLz823evHmL\nnnjiiSa33npr25EjR34Sb2vXrl3+vffeu+K3v/1tq9deey1v165dNnz48ONefvnlxb169dp7/vnn\nd7zrrrtyfv7zn28AaNGiRf7ChQsXATz44IMt69SpUzB//vxFt912W8uxY8d2mTlz5qKWLVvmd+zY\n8YT/+Z//Wd+6desD8XvVrl2b3NzcXW+++WbDXbt2ZfXt23dn165d977xxhuN2rRpk+/udOnSZf8H\nH3xQb+LEic1nzZr1cd26df2yyy770n333dfi+9///ub4XNOnT2/w3HPPNVu4cOGCvXv32oknnpjb\np0+fXQe75ptuumnNrFmzGk6YMOEzgGHDhnW55557VowYMWLn9u3bsxo0aFBQlt+rWjRS4Q633w5T\npmS6JiIiUg5mdsjysWPHbgUYMmTIzlWrVtU52Pk+/PDDeu3bt9/bq1evvQDf/OY3N7/11luN4+2X\nX3751uT9zz///G0AvXv33t2lS5fdHTp02F+/fn0/5phj9i5btqzYew0YMGDnm2++2eitt95qNGTI\nkJ2nnXbajnfffbfRa6+91qhv3747ASZPntx4/vz5DXr37t2je/fuuW+99dZRy5Ytq5t8nunTpzca\nNWrUtgYNGnizZs0KzjzzzEJdLqlc86BBg3bccMMNx9x+++0tN23aVKt27doH+9UUoxaNVJjBXXfB\nFVfAWWdlujYiIlXbYbY8lEerVq3yt2/fXmhw5JYtW2p16tRpb/y6Xr16DpCdnc2BAwdKTiYpaty4\ncaG/+uNzZ2VlUbdu3f9M883KyiI/P7/Ye51yyik77r///py9e/faDTfcsKFNmzb5S5Ysqff22283\n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\nSUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 2 Epochs:\n",
      "Validation Accuracy\n",
      "   33.933% -- Uniform Weights\n",
      "Training Loss\n",
      "    4.697  -- Uniform Weights\n"
     ]
    }
   ],
   "source": [
    "# evaluate behavior \n",
    "helpers.compare_init_weights([(model_uniform, 'Uniform Weights')], \n",
    "                             'Uniform Baseline', \n",
    "                             train_loader,\n",
    "                             valid_loader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "The loss graph is showing the neural network is learning, which it didn't with all zeros or all ones. We're headed in the right direction!\n",
    "\n",
    "## General rule for setting weights\n",
    "The general rule for setting the weights in a neural network is to set them to be close to zero without being too small. \n",
    ">Good practice is to start your weights in the range of $[-y, y]$ where $y=1/\\sqrt{n}$  \n",
    "($n$ is the number of inputs to a given neuron).\n",
    "\n",
    "Let's see if this holds true; let's create a baseline to compare with and center our uniform range over zero by shifting it over by 0.5.  This will give us the range [-0.5, 0.5)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Net(\n",
       "  (fc1): Linear(in_features=784, out_features=256, bias=True)\n",
       "  (fc2): Linear(in_features=256, out_features=128, bias=True)\n",
       "  (fc3): Linear(in_features=128, out_features=10, bias=True)\n",
       "  (dropout): Dropout(p=0.2)\n",
       ")"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# takes in a module and applies the specified weight initialization\n",
    "def weights_init_uniform_center(m):\n",
    "    classname = m.__class__.__name__\n",
    "    # for every Linear layer in a model..\n",
    "    if classname.find('Linear') != -1:\n",
    "        # apply a centered, uniform distribution to the weights\n",
    "        m.weight.data.uniform_(-0.5, 0.5)\n",
    "        m.bias.data.fill_(0)\n",
    "\n",
    "# create a new model with these weights\n",
    "model_centered = Net()\n",
    "model_centered.apply(weights_init_uniform_center)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then let's create a distribution and model that uses the **general rule** for weight initialization; using the range $[-y, y]$, where $y=1/\\sqrt{n}$ .\n",
    "\n",
    "And finally, we'll compare the two models."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Net(\n",
       "  (fc1): Linear(in_features=784, out_features=256, bias=True)\n",
       "  (fc2): Linear(in_features=256, out_features=128, bias=True)\n",
       "  (fc3): Linear(in_features=128, out_features=10, bias=True)\n",
       "  (dropout): Dropout(p=0.2)\n",
       ")"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# takes in a module and applies the specified weight initialization\n",
    "def weights_init_uniform_rule(m):\n",
    "    classname = m.__class__.__name__\n",
    "    # for every Linear layer in a model..\n",
    "    if classname.find('Linear') != -1:\n",
    "        # get the number of the inputs\n",
    "        n = m.in_features\n",
    "        y = 1.0/np.sqrt(n)\n",
    "        m.weight.data.uniform_(-y, y)\n",
    "        m.bias.data.fill_(0)\n",
    "\n",
    "# create a new model with these weights\n",
    "model_rule = Net()\n",
    "model_rule.apply(weights_init_uniform_rule)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nf/31nZyvr7jiivghQ4YkOV8/+eSTba+99tpOqMHw4cMT9+7d61/TNgMGDOgxd+7c0Krrf/jhh5Ap\nU6ZEunsNa9asCQoODj4tOTk51dX7ZWVluPbaazt17tw5PSkpKfV///vfCed0lichISE9OTk5NTk5\nOXX79u219kl+6KGH2nfu3Dk9ISEh/dNPP41wtc3FF1+cEBcX19N53B9++CEEAD744IPIu+66q4O7\n11kRgxARETVJZWVlGD16dOIZZ5yRv3Xr1uwVK1asevrpp7fv2LHjpMLMu+++22bLli112rekpORk\nTnXc8OHDCxYvXhzufL1ixYqQQ4cO+ZeWlgIAfvzxx7AhQ4YU1HSMOXPmrGvTps2xkzl/VlZW6KxZ\ns9wOQgDQqVOnotWrV6909d7HH38cuWHDhuBNmzZlv/zyy5t/97vfdXa1HQBMnjx5w+rVq1euXr16\nZVxcXGlN51yyZEnw1KlTW61Zs2bF7Nmz1951112dnZ9RVU888cQ253GHDBlSCACXXXZZ3pdffhmV\nn59f51zDIERERE3SzJkzWwYEBOj999+f61w3ePDgwlGjRhUAwB/+8Id26enpKUlJSal33313B8Bq\nNLp27Zo2bty4+MTExLTTTz+9e0FBgbz11lvR2dnZoddcc03X5OTk1IKCApk3b15o//79e6SlpaUM\nHTq0++bNmwMBq824/vrrO6Wnp6c88cQT7Xbs2BFw3nnndUtPT09JT09P+e9//xsGALt27fI//fTT\nuycmJqZddtll8a4GKB48ePCRTZs2tSgoKJB9+/b5BwcHl6Wnpx9ZtGhRCAAsWbIkfMSIEQUA8K9/\n/atVz549U5KTk1OvuOKKeGcQqFjTdN9998UmJCSk9+vXr0dmZmaXRx99tJ3zXB988EF0z549UxIS\nEtJnz54dfvToUZk4cWKHGTNmRCcnJ6e+9tpr0bNmzQp31qakpKSkHjhwoE45YNq0aVFXXnnlPj8/\nP5x99tmHDx06FOD83E7FJ598EnXRRRftDwkJ0eTk5OL4+Pii77//Pszd/f38/DBkyJD8utR+OTWL\n2+eJiKiRXX99J2Rnu2wGOWnp6Ufw5ptbq3t7+fLlIb179z7i6r2pU6dGrFu3Lnj58uWrVBUjR45M\n/OKLL8K7du1avGXLluB33313w5AhQzb/6le/6jp58uTo3/3ud/tffvnlts8999zWM84440hRUZHc\ncccdnWfNmrWuQ4cOpa+99lr0vffeG/fxxx9vAoDi4mLJzs5eBQCZmZld7rnnnt3nnXdeQU5OTtB5\n553XfcOGDSsefPDBDoMHDy547rnndn744YeRH330UZuq5QwMDERqauqRefPmhR05csSvX79+h7t3\n7140d+7c8NjY2FJVRWJiYslPP/0U/Mknn7TKyspa3aJFC73qqqs6v/LKK61vu+22fc5jzZkzJ3TG\njBnRK1euXFFUVCR9+vRJ7du37/HPp7S0VH755ZdVU6ZMiXz88cc7jBo1au1DDz20IysrK2zy5Mlb\nAGDEiBGJL7744uZzzz33cF5enl9oaKjbU/MAwM6dOwMTEhKKna9jY2OLN2/eHBgfH39C1dmECRMS\n/Pz8kJmZeeCZZ57Z6edXfebavn170KBBg47XjHXo0KF469atQQAOV932T3/6U9zEiRNjhw0blv/S\nSy9tCwkJUQDIyMg4PG/evPAJEyYcqMs1eXcQevddoKAAuPnmxi4JERHVo9mzZ0fMnTs3IjU1NRUA\njhw54rd69ergrl27FsfFxRU5m0z69u17ZNOmTSf0KVq+fHmLnJyckBEjRiQB1gwXExNz/Mf88ssv\n3+98Pn/+/IicnJwQ5+uCggL/vLw8vx9//LHl1KlT1wHAuHHj8m666SaXzVcDBgw4PG/evPDCwkK/\nIUOGHE5JSTn6+OOPx7Zt27a0X79+hx3X0zI7Ozu0d+/eKQBw9OhRv7Zt21ZqG5ozZ074+eeffzA0\nNFRDQ0P1nHPOOVjx/UsvvfQAAAwZMuTwfffdF+SqLIMGDSq49957O40dO3b/5ZdffqBbt251CkLu\nmjJlyoYuXbqUHDhwwO+CCy7o9q9//atSqDtZL7zwwvZOnTqVFBUVyZVXXhn/hz/8of1zzz23EwDa\nt29fumvXLpfXXRPvDkIffwxs3swgRER0qmqoufGUnj17Fn722WfRrt5TVdx1110777vvvr0V169Z\nsyYoKCjoeBuVv7+/FhYWnlAVoaqSmJhYuHTp0tWujt+yZcuyCtvip59+WhUaGnpSQwkMHTq04N//\n/ndMUVGR3HvvvXtiY2NLc3JygufPnx/urAVRVbn00kv3/fOf/9x+MucAgODgYAWAgIAAHDt2TFxt\n89RTT+0aM2ZM3rRp0yKHDRuWPGvWrJy+ffsere6YEydOjJk0aVIMAMyePTsnNja2ZNOmTcfDxs6d\nO4Nc1QZ16dKlBACio6PLLrvssv2LFi0KA1BtEIqLi3PWAAEAduzYEdSpU6fiqts5zxUSEqLXX3/9\nvueff/5402BhYaEEBwfXOdh5dx+hVq2AfaccQImIqBFkZmbmFxcXy3PPPXe8yWnhwoUhs2fPDj//\n/PMPvfPOO23y8vL8AGDjxo2Btd2ZFB4efiwvL88fAHr16nV0//79AV9//XUYABQVFUlWVlawq/2G\nDh16aOLEiW2dr513Kg0aNCj/7bffbg0AH330UcShQ4dc3tk1YsSIgqVLl4bt378/MC4urtTPzw+t\nWrUq/fLLL6OGDx9eAACjRo06NHPmzGjnNezevdt/7dq1lWo3hg8fXvDll19GHjlyRPLy8vy+/vrr\nqNo+w4iIiGMFBQXHf+tXrFjRYsCAAYVPPvnkrl69eh3Ozs52ec1ODz30UK6zY3JCQkLJ6NGjD773\n3nuty8rK8M0334S1bNnyWNUgVFJSAmefpqKiIvn8888j09PTCwFg8uTJUbfeemtc1fNcfPHFB6dO\nndqqsLBQVq9eHbRp06bgM88884RmMWd/pLKyMkydOjUqJSWl0PnemjVrgtPS0gqr7lMb7w5CrVsD\n+/fXvh0RETU5fn5+mD59+vpvv/02olOnTumJiYlpDzzwQFxcXFzJRRdddOjSSy/d379//+SkpKTU\n3/zmN90OHjxY4y3m11xzzd7bb789Pjk5ObW0tBQffvjh+gcffLBjjx49UtPS0lLnzJkT7mq/V199\ndetPP/0UlpSUlNqtW7e0l156KQYAnn766R3z588PT0xMTJs6dWp0bGzsCTUYABATE3OsVatWpUlJ\nScd/pAcMGHB4//79AYMGDToCAP369Tv6+9//fvvZZ5+dlJSUlDpixIikrVu3VuqEPHz48COjRo3K\nS01NTRsxYkT3Hj16FEZGRtZ4N9n555+fv3bt2hBnZ+m//OUvbbt3756WlJSUGhgYqJdcckleTftX\nNXbs2Lz4+Pii+Pj49FtuuSX+n//85/FpXJy33BcWFvqNHDmye1JSUmpaWlpqbGxsyT333JMLAOvW\nrWsRERFxQpkzMjKOjhkzZn9SUlLaqFGjkl544YXNAQEBzutOdA57cNlll3VJSkpK7dGjR9q+ffsC\nJk6cuNN5jLlz57YcM2ZMna4HAMRVL/emJiMjQ09qrrGnngIeeQQoLASCawy9REReR0SWqGrGye6/\nbNmyTb17995b+5bUUPLy8vwiIyPL8vPz/QYPHtzjlVde2Tx06FCXHcpPxpo1a4IuuOCC7jk5OSvq\n65gVXXjhhV1efvnlrR06dKjxdvq62rp1a8DYsWO7LliwYK2r95ctW9amd+/eCa7e8+4+Qq1a2eP+\n/UCHkxpniYiIqMm46qqr4nNyckKKiopk3Lhx++ozBAHWpyo/P98/OTk5tbqxhE7FtGnTNtb3MQFg\nw4YNQc8///xJ9WPz7iDUurU9MggREZEXmDFjhkeChFNiYmLJrl27lnvyHJ4wfPjwkw6E3t1HyFkj\nxA7TRERE5IJHg5CIRInIJyKyWkRWichgEWklIl+JSI7j0eWtkfWiYo0QERERURWerhH6O4DZqpoM\noDeAVQAeBPCNqnYH8I3jtWdU7CNEREREVIXHgpCIRAI4A8AbAKCqxap6EMCFACY5NpsEYIynysCm\nMSIiIqqJJ2uEugDIBfCWiPwsIq+LSBiAdqrqvO9/F4B2rnYWkRtFJEtEsnJzc11tUruwMCAoiDVC\nRETN1NatWwMyMzO7dOzYsWdaWlpKnz59kidPnlzrQIKe8uKLL7a+5pprTphx/cUXX2wdHR3dOzk5\nObVLly5pf/rTn9q62r+iNWvWBHXv3j3N3XOvWbMmKDg4+DTneD2e8sEHH0TeddddPnOHkSeDUACA\n0wC8rKp9YROnVWoGUxvEyOVARqr6qqpmqGpGTEzMyZVAhKNLExE1U2VlZcjMzEwcNmxYwbZt235Z\nsWLFqo8++mhDxakYPKGk5IQZI9ySmZl5YPXq1SsXLFiw+m9/+1vsunXrTnlW9qo6depU5Inb2iu6\n7LLL8r788suo/Px8776hysGTF7kNwDZVXeh4/QksGO0WkVgAcDzu8WAZOLo0EVEzNWPGjJaBgYF6\n//33H28WSEpKKn7kkUf2AEBpaSluuummjunp6SlJSUmpzz77bBsAmDlzZssBAwb0GDVqVNcuXbqk\njR49uktZmU1BNW/evND+/fv3SEtLSxk6dGh355QNAwYM6HH99dd3Sk9PT3niiSfavf/++5G9evVK\nTklJSR0yZEjS1q1b3R5upn379sc6d+5c5BwZ+uKLL0546623jt8YFBoa2rfqPtVdi7uOHTuG+Pj4\n9B07dgQ4X3fu3Pn4a1cyMjJ6OKcLAYB+/fr1WLBgQYifnx+GDBmSP2XKlMi6lKG58tg4Qqq6S0S2\nikgPVV0D4GwAKx3LeABPOx6neaoMAKxGiEGIiOiUXH89OmVnI7Q+j5mejiNvvolqB8H75ZdfQnr1\n6lXt+DB/+9vf2kRGRh7Lzs5eVVhYKP3790/OzMw8BACrVq0KWbp06YaEhISSfv36JX/11VfhZ555\n5uE77rij86xZs9Z16NCh9LXXXou+99574z7++ONNAFBcXCzZ2dmrACA3N9d/3Lhxq/38/PDCCy+0\nefzxx9u/9tpr29y5rpycnKCioiK/gQMHuj3vVXXXkpyc7HLajqr8/f1xySWX7Hv99ddbPfroo3um\nTZsWkZKSUljTCM7jx4/f+/rrr7cZMmTI1uXLl7coKiryGzx4cCEAZGRkHJ43b174hAkTDrh7Dc2V\npwdUvB3AeyISBGADgOtgtVAficgNADYDGOvRErRqBWzY4NFTEBGR51199dWdFy1aFB4YGKjZ2dmr\nvv7664jVq1eHTp8+PRoA8vPz/VeuXBkcFBSkPXv2PNytW7cSAEhLSzuyfv36oFatWpXm5OSEjBgx\nIgmwpreYmJjj7WCXX3758X81b9y4MWjMmDEdc3NzA4uLi/06depUVFv5ZsyYEZ2UlBS+cePG4IkT\nJ26py2z11V2Lu0EIAG655Za9o0ePTnz00Uf3vPnmm22uvfbaGqdHufbaaw88++yzsUVFRdteeeWV\nNldcccXx7du3b1+6a9cujzZBNhUeDUKquhSAq3luzvbkeStp3Ro4mXnKiIjouJpqbjylZ8+ehdOm\nTTvepPTOO+9s2blzZ0BGRkYKAKiqPP/881suvvjiQxX3mzlzZssWLVocDyH+/v4oLS0VVZXExMTC\npUuXrnZ1vpYtW5Y5n992222d77zzzl1XXnll3syZM1s+/vjjtXYezszMPDB58uQtc+fODc3MzEwa\nO3bswc6dO5cGBATosWM2z+ixY8dQUlIiVfet7lpqMnHixJhJkybFAMDs2bNzEhMTS9q0aVM6ffr0\nlkuXLg377LPPaqwFaNmyZdmwYcMOvf/++1HTp09v9fPPPx/ve1RYWCjBwcFlNe3vLby/IxQ7SxMR\nNUuZmZn5RUVF8swzzxy/Y6agoOD479Y555yT9/LLL8cUFRUJACxfvrzFoUOHqv1d69Wr19H9+/cH\nfP3112EAUFRUJFlZWS5n5M7Pz/fv3LlzCQC8/fbbretS7jPOOOPIRRddtO+ZZ55pBwDx8fHFS5Ys\nCQWA999/P6q0tPSEIFTXawGAhx56KHf16tUrV69evTIhIaEEAK6//vrcCRMmdMnMzNzvnL198uTJ\nUbfeemucq2PcfPPNex944IFOvXv3PhwTE3N8Vvg1a9YEp6Wlud2015x5fxBq3Ro4etRmoCciombD\nz88PM2bMWD9v3ryWcXFxPXv27Jly1VVXJTz22GPbAODuu+/em5ycfLRnz54p3bt3T/vtb38b76q2\nxSk4OFg//PDD9Q8++GDHHj16pKalpaXOmTMn3NW2jzzyyI7LL7+8W1paWkrr1q3rPFP6H//4x11T\npkxpc+DAAb/bb78994cffmjZo0eP1B9++CEsJCTkhJqWul5LdS6//PK8I0eO+N94443HawDWrVvX\nIiIi4pir7YcNG3YkLCzs2HXXXVepGW3u3Lktx4wZk1fX8zdHYnewN20ZGRmadbLNW6++Ctx0E7Bt\nGxDnMhATEXklEVmiqq66J7hl2bJlm3r37l1jPxNqOGvWrAm64IILuufk5Kyobpu5c+eG3n333Z2W\nLFmyxrnuwgsv7PLyyy9vddVxetOmTYFnnnlmj/Xr12f7+/sDsLGbxo4d23XBggVrPXIhjWDZsmVt\nevfuneDqPd+oEQLYPEZERM2av7+/5ufn+1c3oOLDDz/cfty4cd2eeuqp7RXXT5s2baOrEPTSSy+1\nHjRoUMqjjz663RmCAGDDhg1Bzz//fIP3CWss3l8j9N13wIgR9njmmfVaLiKipow1QkTGt2uEON8Y\nEdHJKisrK6tzPxWipsTxN1ztHXDeH4ScTWMcVJGIqK6yc3NzIxmGqLkqKyuT3NzcSADZ1W3j6QEV\nG5+zRohBiIioTkpLSyfs2rXr9V27dqXDF/7hTN6oDEB2aWnphOo28P4gFBoKBAezaYyIqI769eu3\nB8Doxi4HkSf5RsLnfGNERETkgu8EIdYIERERURW+EYRat2aNEBEREZ3AN4IQm8aIiIjIBd8IQq1b\ns2mMiIiITuAbQchZI9QMRtEmIiKihuM7QaioCDhypLFLQkRERE2IbwQhji5NRERELvhGEOJ8Y0RE\nROSCbwQh1ggRERGRC74RhDjfGBEREbngW0GITWNERERUgW8FIdYIERERUQW+EYRCQmxhjRARERFV\nEODJg4vIJgD5AI4BKFXVDBFpBWAKgAQAmwCMVdUDniwHAM43RkRERCdoiBqhs1S1j6pmOF4/COAb\nVe0O4BvHa8/jfGNERERURWM0jV0IYJLj+SQAYxrkrJxvjIiIiKrwdBBSAP8VkSUicqNjXTtV3el4\nvgtAO1c7isiNIpIlIlm5ubmnXpJWrRiEiIiIqBKP9hECMFRVt4tIWwBficjqim+qqoqIy5lQVfVV\nAK8CQEZGxqnPlhodDRw8eMqHISIiIu/h0RohVd3ueNwD4D8ABgDYLSKxAOB43OPJMhwXGQnk5TXI\nqYiIiKh58FgQEpEwEWnpfA7gXADZAKYDGO/YbDyAaZ4qQyWRkTb7fElJg5yOiIiImj5PNo21A/Af\nEXGe531VnS0iiwF8JCI3ANgMYKwHy1AuMtIeDx0qn3uMiIiIfJrHgpCqbgDQ28X6fQDO9tR5q+UM\nQgcPMggRERERAF8ZWRooD0LsJ0REREQODEJERETksxiEiIiIyGcxCBEREZHP8p0gFBVljwxCRERE\n5OA7QSgiwh4ZhIiIiMjBd4JQYCAQGsogRERERMf5ThACOM0GERERVeJ7QYgTrxIREZGD7wUh1ggR\nERGRA4MQERER+SwGISIiIvJZDEJERETksxiEiIiIyGf5VhCKigIKC4GSksYuCRERETUBvhWEON8Y\nERERVeCbQYhjCRERERF8NQixRoiIiIjAIEREREQ+jEGIiIiIfBaDEBEREfksBiEiIiLyWR4PQiLi\nLyI/i8hMx+suIrJQRNaJyBQRCfJ0GY6LiLBHBiEiIiJCw9QI3QlgVYXXzwD4q6omAjgA4IYGKIMJ\nDATCwhiEiIiICICHg5CIdATwawCvO14LgBEAPnFsMgnAGE+W4QSRkRxHiIiIiAB4vkbobwDuB1Dm\neN0awEFVLXW83gYgzsNlqIzzjREREZGDx4KQiFwAYI+qLjnJ/W8UkSwRycrNza2/gjEIERERkYMn\na4ROBzBaRDYB+BDWJPZ3AFEiEuDYpiOA7a52VtVXVTVDVTNiYmLqr1QMQkREROTgsSCkqg+pakdV\nTQAwDsC3qnolgO8AXOLYbDyAaZ4qg0sMQkREROTQGOMIPQDgHhFZB+sz9EaDnp1BiIiIiBwCat/k\n1Knq9wC+dzzfAGBAQ5zXJQYhIiIicvCtkaUBC0JHjwLFxY1dEiIiImpkvhmEANYKERERkQ8Goago\ne+SgikRERD7P94IQa4SIiIjIgUGIiIiIfBaDEBEREfksBiEiIiLyWQxC1VEFVq70fHmIiIio0fhe\nEIqIsMfagtBnnwFpacD69Z4vExERETUK3wtCAQFAWFjtQSgryx43bfJ4kYiIiKhx+F4QAqx5rLZx\nhJzNYnv2eL48RERE1Ch8Nwg5a4RUgaKiE7dxBqHduxuuXERERNSg3ApCItJNRFo4np8pIneISJRn\ni+ZBUVEWhFSBm24C4uIqh6HWqyMTAAAgAElEQVSiImDdOnvOGiEiIiKv5W6N0KcAjolIIoBXAXQC\n8L7HSuVpzhqhRx8FXnsN2LcPWLq0/P01a4CyMnvOGiEiIiKv5W4QKlPVUgC/AfAPVb0PQKzniuVh\nkZHAsmXAE08AY8bYukWLyt93NouFhLBGiIiIyIu5G4RKRORyAOMBzHSsC/RMkRpAZCRQUgJkZgIf\nfwx06AAsXFj+/sqVgJ8fMGAAa4SIiIi8WICb210H4GYAT6rqRhHpAuAdzxXLw379a6CgwJrFAgIs\n8FSsEVqxAkhMBDp3BubObbxyEhERkUe5FYRUdSWAOwBARKIBtFTVZzxZMI8aPdoWp4EDbQDF/fuB\nVq2sRig1FWjb1mqEVAGRxisvEREReYS7d419LyIRItIKwE8AXhORFzxbtAY0YIA9Ll4MFBcDOTk2\nqnS7dsDRo0B+fuOWj4iIiDzC3T5Ckap6CMBFACar6kAAIz1XrAaWkWE1PosWWQg6dqy8Rghgh2ki\nIiIv5W4QChCRWABjUd5Z2ntERAApKdZhesUKW5eaajVCADtMExEReSl3g9DjAL4EsF5VF4tIVwA5\nnitWI3B2mF6xwmqHevQoD0KsESIiIvJKbgUhVf1YVXup6i2O1xtU9WLPFq2BDRwI5OYCn38OdO1q\nYwg5m8ZYI0REROSV3O0s3VFE/iMiexzLpyLSsZZ9gkVkkYgsE5EVIvInx/ouIrJQRNaJyBQRCaqP\nCzllzg7TWVnWURoAYmLskTVCREREXsndprG3AEwH0MGxzHCsq0kRgBGq2htAHwCjRGQQgGcA/FVV\nEwEcAHDDyRS83vXsCQQH2/PUVHsMCgKio1kjRERE5KXcDUIxqvqWqpY6lrcBxNS0g5oCx8tAx6IA\nRgD4xLF+EoAxdS+2BwQGAqedZs+dQQiwfkKsESIiIvJK7gahfSJylYj4O5arAOyrbSfHtksB7AHw\nFYD1AA465i0DgG0A4qrZ90YRyRKRrNzcXDeLeYqczWNVgxBrhIiIiLySu0Hoetit87sA7ARwCYBr\na9tJVY+pah8AHQEMAJDsbsFU9VVVzVDVjJiYGiuf6s+VV9r8Y+np5evatmWNEBERkZdy966xzao6\nWlVjVLWtqo4B4PZdY6p6EMB3AAYDiBIR59QeHQFsr2uhPSYjA5g+HWjRonwda4SIiIi8lrs1Qq7c\nU9ObIhIjIlGO5yEAzgGwChaILnFsNh7AtFMog+e1bQscPAgUFTV2SYiIiKienUoQqm0W0lgA34nI\ncgCLAXylqjMBPADgHhFZB6A1gDdOoQye5xxUsaH6KREREVGDcWv2+WpojW+qLgfQ18X6DbD+Qs1D\nxUEVO9Y4dBIRERE1MzUGIRHJh+vAIwBCPFKipobTbBAREXmtGoOQqrZsqII0WbVNvLpkCdCrl41D\nRERERM3KqfQR8g3OpjFXNUIbNwL9+wOTJzdsmYiIiKheMAjVJjwcCA11XSP000+AKrB8ecOXi4iI\niE4Zg5A7qhtU0RmAVq1q2PIQERFRvWAQckd1gyo6g9Dq1Q1bHiIiIqoXDELuqC0Ibd0KFBSc+D4R\nERE1aQxC7nDVNJafD2zYAPR1DJW0Zk3Dl4uIiIhOCYOQO9q1s5Gly8rK12Vn2+Nll9kj+wkRERE1\nOwxC7mjbFjh2DNi/v3yds1nsoosAf3/2EyIiImqGGITc4WpQxeXLgYgIIDER6NaNNUJERETNEIOQ\nOxIS7PHnn8vXLV9uI0qLACkprBEiIiJqhhiE3NG/v4WhSZPstXMQxV697HVyMpCTA5SWut7/7LOB\nJ59skKISERGR+xiE3OHnB1x7LfDNN8CWLbYcOlQehFJSgJISu4usquJi4PvvgVmzGrLERERE5AYG\nIXeNH281QZMmlXeUrlgjBLhuHtu0ye42W7bMOlwTERFRk8Eg5K6EBOCss4C33waWLrV1PXvaozMI\nueowvX69PR45Ys1nRERE1GQwCNXFdddZ89cbb9idYuHhtj4yEoiNdV0jtG5d+fOKna2JiIio0TEI\n1cVFFwEtWwKbN5c3izmlpLiuEVq3zmavb9GCQYiIiKiJYRCqi7AwYOxYe141CCUnW42QauX169fb\nWEPp6QxCRERETQyDUF1NmGBjBw0aVHl9cjKQlwfs2lV5/bp1FoT69rUgVDUoERERUaNhEKqrQYOA\njRuB886rvD4lxR4r9hM6dsy2dQahffuAbdsarqxERERUIwahkxEfb7VCFTnvHFu5snzdtm02jlC3\nbuWz1LN5jIiIqMnwWBASkU4i8p2IrBSRFSJyp2N9KxH5SkRyHI/RnipDg4qLs8lZFy4sX+e8Yywx\n0W61F2EQIiIiakI8WSNUCuD/VDUVwCAAt4pIKoAHAXyjqt0BfON43fyJAEOHAvPmla9zjiHkvNU+\nKYlBiIiIqAnxWBBS1Z2q+pPjeT6AVQDiAFwIwDFpFyYBGOOpMjS4YcNsJGlnP6B164CgIKBjR3vt\n7DBNRERETUKD9BESkQQAfQEsBNBOVXc63toFoF1DlKFBDBtmj//7nz2uXw907Qr4+9vrvn1tnrJ9\n+xqnfERERFSJx4OQiIQD+BTAXap6qOJ7qqoAXN5PLiI3ikiWiGTl5uZ6upj1o3dvawJzNo+tW2fN\nYk7ODtPOKTqIiIioUXk0CIlIICwEvaeqUx2rd4tIrOP9WAB7XO2rqq+qaoaqZsTExHiymPUnIAAY\nPNiCkGr5YIpOvHOMiIioSfHkXWMC4A0Aq1T1hQpvTQcw3vF8PIBpnipDoxg2DMjOtvGEDh+uXCPU\npo31F1qypPHKR0RERMcFePDYpwO4GsAvIuJsC3oYwNMAPhKRGwBsBjDWg2VoeMOGWW3QO+/Y64o1\nQoDdWfb997ZN1bGIiIiIqEF5LAip6v8AVPdLf7anztvoBg4EAgOByZPtddUgNHIk8OGHNvBiWlrD\nl4+IiIiO48jS9S0kBMjIALZvB/z8bBTqikaOtMdvvmn4shEREVElDEKeMHSoPcbH2zhCFcXHW7+h\nr79u+HIRERFRJQxCnuAcT6hqs5jTyJHWT6ikpMGKRERERCdiEPKE00+3x4p3jFU0ciSQnw8sXtxw\nZSIiIqITMAh5QqtW1ln6rrtcv3/WWXbHGJvHiIiIGhWDkKdcfTXQo4fr91q3Bk47re5BKD8f+O67\nUy8bERERAWAQajwjRwILFgAFBe7v849/ACNG2B1pREREdMoYhBrLyJFAaWn5vGTucPYpWrTIM2Ui\nIiLyMQxCjeX004EWLYD//tf9fZxzlLGTNRERUb1gEGosISHAuecCL74IPPwwUFRU8/b79wObN9tz\nBiEiIqJ6wSDUmN55B7j2WmDiRBuNuqZZ6Zc6pmvr2tWCUFlZgxSRiIjImzEINabISOCNN4BZs6zG\n5+yzgZ07XW/rDEk33gjk5QHr1jVcOYmIiLwUg1BT8KtfAd9+CxQWAjfdZDPTV/Xzz0BcnG0LsHmM\niIioHjAINRU9egBPPQXMmAG8++6J7//8M9C3L5CSAoSG8s4xIiKiesAg1JTccYdN2HrHHZXHCjpy\nBFi92oJQQADQrx9rhIiIiOoBg1BT4u8PvPWW3UF2883l65cvt87Rp51mr/v3txoi56StP/0EDBxY\nff8iIiIicolBqKlJTAQeewyYOdNGngbKO0r37WuPAwYAR48C2dkWkG6+2ZrKvviiUYpMRETUXDEI\nNUW33mrzkT3xhL3++WcgOhro3Nle9+9vj4sXWw3S4sU2iWtdRqkmIiIiBDR2AciFsDDgnnuARx6x\nZi9nR2kRe79LFwtK//0vMHeujVLdpo09JyIiIrexRqipuvVWG2fosceAX34pbxYDLBD17w98+imw\nd69NxnrGGcCGDe5NyLp7N5CUBLz9tqdKT0RE1CwwCDVVkZF299iMGdZ52tlR2snZPHbTTRaSzjjD\nXtfWPKYKXHcdkJMDzJ5d/+UmIiJqRhiEmrI77wTCw+15xRohALjkEuD888v7EfXpY9vWFoT+8Q/r\nVB0VVT5tBxERkY9iEGrKWre2vkKxsdaUVVGvXsDnn9s2gI0vNGTIif2ENmwA9u2z58uXA/ffD1xw\ngYWstWuBw4c9fx1ERERNlMeCkIi8KSJ7RCS7wrpWIvKViOQ4HqM9dX6v8dhjFmb8/Wvfdtgwu6V+\n/357/f33djt+mzZA27Y2l1l0NPDmm1bDpGr9j4iIiHyUJ2uE3gYwqsq6BwF8o6rdAXzjeE01EQGC\ng93b1tlP6H//s8EWb73Vbrl/7jlg9GigZ0/ggw+AmBigd2/bdtmyUyvf8uU2cSwREVEz5LHb51V1\nrogkVFl9IYAzHc8nAfgewAOeKoPPGTAACAqyfkI5OcDKlcC0aRaCqoqPtw7Zp9JPSBW4/npgyRIg\nI6M8XBERETUTDT2OUDtVdc4DsQtAu+o2FJEbAdwIAJ2dAwlSzYKDLQxNnw7s2AH8+tdAZqbrbUWs\ng/WpBKHZsy0EAcDTT1ttExERUTPSaJ2lVVUBaA3vv6qqGaqaERMT04Ala+aGDbNO0CUlwN//Xj4I\noyt9+ljT1rFjrt9/6CHg9793/Z4q8Oc/W9PbXXcBH30ErF9/6uUnIiJqQA0dhHaLSCwAOB73NPD5\nvd/w4fb40ENAt241b9unj81sv27die/t2wc8/zzw1FOua42+/dbmQnvwQbsTLTAQePbZUy8/ERFR\nA2roIDQdwHjH8/EApjXw+b3fOedYv6CHH65925o6TH/8sdUqhYQA//d/VgNU0Z//DHToYIMzxsYC\n115r857t3HnisfbssVv9qx6DiIiokXny9vkPACwA0ENEtonIDQCeBnCOiOQAGOl4TfXJz886RwcG\n1r5taqqNP+Sqxuedd4C0NOCZZ6z2Z9as8vfmzgXmzLGaIOcdbffdB5SW2h1qBQU2PtGyZdaZulMn\n6680ZUr9XCMREVE9EW0G/0rPyMjQrKysxi6Gd+rdG4iLsxobp/Xrbfyhp5+2AR179rS+RkuX2hhE\nDz4IhIbadqGh5ftdfjnw4YeVjx8aCowfb8GptBRYscLC18n66isLVsnJJ38MIh8hIktUNaOxy0HU\nlHH2eV/Xp4+Fi4refdeCzxVXWM3SX/4CXHihhaNt24ARI4BXXqkcggDghRdsDjRn5+uICODSS4FW\nrYDPPgN+8xtg8mSrJToZn39uo2K3bQtkZQEdO57ccYiIiBxYI+TrXnjB+gDt3m0BQxXo3t3uBvv2\nW9tG1eY1W7LEtr/qqprvRnNFFRg40M6zdi3QokXd9l+71oYGiIsDtmyxZr05c9wfbJLIB7FGiKh2\nnGvM1/XpY4/ODtMLF1qT19VXl28jYmMTbdtm6+sagpzHePJJCzGvvlq3fQ8dshqpwECrFZo8GVi0\nyEbObgZBnoiImi42jfk6551jf/+79QH69lurZbn44srbBQWd+rlGjgTOPNPuOJs/H1i9Gti4EWjX\nzprdEhMtmPXvbzU+27bZfGmvv24jZX/9tY2IHR8P/OEPdpz27W2so5CQupWlpMSGDUhJOfXrIiKi\nZotNY2ThZO7c8tqVa64BJk3yzLkWLrRA1K6ddXju0sWay9ats7BTUGDbBQZaWAFsothnnwVuuKH8\nOGVlVs733rPb9x95BJgwwf0mt/Hj7c64rCzgtNPq9xqJmgg2jRHVjkGITFmZ3fKen299hU7lzq5T\nKUNODrB4sdVOde5sIS093YYFcGXuXKsRmjcPGDTIapBqC0NffAH86lf2PDPTmv2IvBCDEFHtGISo\n+VO12p3x44HbbgP+8Q9bX1ZmYx398IPd9p+cbP2N0tOB8HDgkkuseW3RImuOq8m+fdZ8eOONvFuN\nmg0GIaLasbM0NX8i1kx2zz3ASy/ZwI2lpTba9fPPW0fwjAzg/fdt6pFt24A33rBBIFu1Ah57rObj\nL1kC9Otnoem3v3W/g/a+fTaFSV0UFVmt1iOPALfcAhQWurffqlVWxgUL6nY+IiJfp6pNfunXr58S\n1aq4WHXIENXwcNXzzlMFVJ94QnXbNtWhQ+01oHrXXeX7TJxo6xYsOPF4eXmqr7yi2qKFaufOqrfc\nYtt++mnl7QoKVI8dq7zum29UIyJUBw5ULSlxXd6yMtWFC60M116rOniwamioncPfX1VEdfTo6vd3\nOnpUtXdv22/48Fo/JvIdALK0Cfw/nAuXprw0egHcWRiEyG1bt6q2aWN/2n//e/n6khLVhx9WPfts\nCy5O+fm2/bBhqv/6l4WkUaNUO3XS48HpnHNUc3PtGL16qXbsaPupqn72mQWvnj3teVmZ6jvvqAYG\nqsbF2f5/+lPlMubmqv7lL6qpqeXniI1VPfNM1dtvt+Pk5an+85/23g032HGrc/fdtt2YMfY4d279\nfZ7UrDEIceFS+8I+QuR9fvkF2LXLJqB1x/PPA/fea89DQ21AybQ060vUuzdw3nmAv7+9/8MPwOmn\nW7NadLQ1YfXpYx3N1661fkirVwNnnQVMnWp9lj78EPjxR2uemz/f+ibt2gUMGWKT1l50kTXRufLo\no9Ykd/PNQFISsHWrdWgfOdLmb5s/Hxg1ysZU+stf7C68Pn2AL790fbxFi+yOvfj4un2mFZWUAHff\nbR3U582zEcRd2bvXpmnp0MGGKUhPt+lRqMGwjxCRGxo7ibmzsEaIPKq0VPXHH60JraaaF6cbbtDj\nNTnjxqkeOWK1RW+8odqtm+r48dZcpaq6f7/VDCUnq/7jH1ZT1K2b6k8/uVe2sjLVG28sP19oqGp0\ntD0PDlZt2VI1Lc3KoKr6zDP23sKFlY+zc6fqxRfbe4GB1sy3fbvrcxYXqxYVuX5v717Vs84qL88D\nD1Rf7t/8pnw753LWWapffOHe59xUNKeyVgHWCHHhUuvS6AVwZ2EQoiYlN1c1I0P1ySfd+5H86is9\nHgRGjbJwVBdlZarr19t+ZWUW3ObOVb3zTuuDtHx5+baHDqm2aqWamWmvd+60fk7R0dbX6fHHLQQF\nBFiQevnlyuc6elR1wAALV4cOVX5v9WoLcUFBqpMmWeALCrKyVfX223a9zz1n4WnePOsL5WwuTEtT\nvfBCa8679FLV77+v/vpXrFA94wzV1q1V27Wzpsm7726YgLJxo2r79qr333/i+ebNs6bYisrKVGfM\nUJ0/3/NlcwODEBcutS+NXgB3FgYhavb+9jcLTqWlnj/X44/bf9rdu+vxADZ4sOqqVeXbrF+veu65\nqn5+qv/9b/n6u+6y7f38LKA4f/zXr7d+TDEx5T/y27dbDdUll1Q+/6ZN1lH8jDNOvN6iIgtJQ4da\nf6uePS3cBARYYKuopMTCU1CQ9eO65RarHRs1ysr41luVt9+3z/pXvfOOBbynnrKwOG6c6oQJFsjq\nauxY67QO2DFKS61/mLNWMCxM9a9/tfV79thnAVjorBruNm+2ddXVtrly+HDdy1wBgxAXLrUvjV4A\ndxYGIaI6OHBAddAg1QsusE7ZCxeeeFebqv2gp6dbbdH69aozZ9r/Em6/vbyJ7a9/tSbDhASrafrl\nl8rHcIauOXPsdXGxNX+Fh6tu2OBeefPyVH/1KzvObbepfvyxPSYl2bpLLlHdvbt8+9JS61geFma1\nVKpWK1axg7tzCQ8vr8VKTFRds8a2LylR/fe/reZs1izX5Zo7147xxz+qPvKIPc/MtIAponrvveXl\n7tPHQmJQkHWOT0mxZsslSyxMvvpq+R2BUVGqV1+t+t13NX8un31mtVHZ2e59ji4wCHHhUvvS6AVw\nZ2EQIvKQdevshzktzWpdevdWLSy0H+8xY6ympksX+1FftOjE/Q8ftgDSqZPtGxRk/1t5/fW6laO0\nVPX//k8r9YUaOdJCkSvbtlkw69tXddo0K1+HDqqzZ1vY2bGj8t2B8+dbUImOtnDnvGMvIsIeL764\ncjPXsWOqp51mzXDOWpnnnrNtO3YsDzFlZapTplitVr9+5UFx61YbciEmxgIpoDpihOpHH9lQCdHR\nVuv29deur2/2bPssBw60oHiSGIS4cKl9afQCuLMwCBF50OzZ9qMcGlq5+ezgQav9CA4ur/Fx5bPP\nVLt2tSar++8vH0bgZMyfb2M6FRfXvu20aXo8OPXufWJ/nao2bCgPQN27q06dan2innzSrjEsTPV3\nv1Ndtsw6vgOq771X+RiLF1uNW1XFxSde85o1FoQCAy1EVayVO3TIytK69Yk1Z999Z+Xp06fu/cmq\nYBDiwqX2xatvn//qK2DPHptNITzc7owOCbGlZcvGm1KLqMmZNg2IjLS53SrKzQUOHLBb95uiP//Z\nhi3417/sP+ra5OUBc+YA559vE/s6bdhgI4x/9JGN7h0YWD7cgcjJl2/rVjteYuKJ761bZ1O7xMfb\nsAwFBTb6+e9/b+u+/x6IiTn5c4O3zxO5w6uD0PnnA7NnV/++CNCmjf2/pmVLC0sRETakS6tWQOvW\n5e87H2Ni7PfiVP7fSERN1P79wOTJwIwZNr5Unz6ePd/s2TYBcLduwKZNNjXMkCHAJ58AsbGnfHgG\nIaLaeXUQ2rvX/jFbUGDL4cM2dVNhof3DcPduG9du714boy4/3+bk3L/fpokqLnZ93IAAICrKAlFU\nFNC+vc3DGRdn60JCrPapbVsbP65TJyAs7BQ/BCLyTn/9K/Dii8Cll9rEwWlp9XZoBiGi2nl1EDoV\nqjZf5t69tuTmli979wIHD1qYOnAA2LkT2L7d3quOn1/50qaNtTT06GH/6AsKAlq0sPDkrI1q08YG\n5G3TxvY5VceOATk5dszqBgImIu/CIERUO/aQqYaI1eKEhbk/G0FxsdU8HTlij7t320TnW7faurIy\nCyQ7d1q3ho8/ttqnmgQEWE1Tt27WzSA62rozrF1rx+nQAejc2WqkWra0MBUcbPuWldl5Fy+2LgiH\nDtl1paUBAwcCR49aN4X1622fhAS71thYaxZs3drO3aOHvefvb9foDIMHDpTXuDmvLTzcavY7diy/\nBlXbzlnrVlho5YyIsPNu2mSzUmzYYCGwWzega1drhoyIqNyV49gxC4aumibLyqxcO3bYdTu/v+Dg\nyhPGi9gSFGTnc86eQUREvqdRaoREZBSAvwPwB/C6qj5d0/bePNdYWZmFC2eIcoaLPXvsB337dmDL\nFgsr69fbe127Wo1S+/bWtLdli213+LD1y6wqNRUYNszCz9atwIIFFo7Cwy1cdetmoWjzZmDjRgtw\nVY8TFGTh5eBB966ra1ebWmrrVgtb+fkn/xmFhNhjUZF9Xv7+1iQZHW3Pjx61cHXggE2DVRd+ftaE\nGR1txykosGMFBlotXVCQbadaHvZKS+0xKsr2bdvWQmN0tC1t21qYbN/eQuNPP9myfXt5M21gYHnw\nDA2197Zts7+DpCSbsiwhwcrg7NDvbLI9cMDKWlRk5WjXzppfY2Pt+9mxw/5+unUDBgywbi47dwIL\nF9r3XlRU3icuONjKEhBg13X4sC0tWljA7tzZwqLzug8dsr+TzZvtefv2FsYjI+1ad+2y8oWE2PGd\nYdQZ0IuKLKQePWplTkmxv5WKYXTjRuDrr4HvvrNy9ehhy9GjQHY2sGKF/V05P4/wcJv+bdgw4LTT\nyvvyhYWV/22UlloZQkPtXM5a3AMH7HOLj7faV1W7fuc/aAoL7XH3btt+504rU0SELSLl//36+5ef\no107+w5jYspDe3GxHS8oyJb9++07WbjQPs+YGPvb6dDBprvr0cP+nk4Fa4SIatfgQUhE/AGsBXAO\ngG0AFgO4XFVXVrePNwehuiorq7mp7Ngx+5+/iG3n71+5RsVdR47Yj8yWLcCaNbYcPmz/g2/b1n40\nnD/84eF2Hn9/q5GZN89uzFm71n5gEhNtLtCoKNs2JMSOf+iQHTM+3n40una1H4cNG2zZv9+aH/Py\n7HqcwaSoqDwwqtoPbEiI/RjHxdkPSVhYec1cUVF5LRBQHmqKiuwHbvduO1ZoqO0XEmKBqqiovJ+Y\nsxYqIMAWPz8LHc799++3Yxw+7PrzTEqyz8AZQAoLywNFYaGVOy7Ovqu1a+36jx1zfSxnGVu0sHLs\n2nViAGzZ0nX4dP5Q5+e7Ds2AfY/VnbviNmFh9h1W5by+2o7h5AzZ/v723ThrSWNjbd22beXbBgZa\nQOjSpbzWMjfX/uY2bnTvfNUJDKx7kK5NdLQFpn377G/RFX9/+5vdt8/+ZiuKibFAeLLdhhiEiGrX\nGEFoMIDHVPU8x+uHAEBVJ1a3D4MQNRfFxVYbs3OnLVFRViNT135ZxcW2f0lJ+Y9zdLTVzjhrqZzK\nyuycu3bZNu3bW0jascNqgH7+2X5oBw60H1RnDZMz7JWW2vOAAAs3zrDprI08eNDec4af+HgLbQEB\nFnh27rSw6qzRCAqyQOOs5XTWqhQWWmgNDbXQsWkTsGqVhewjRyw4lZVZDebIkRaORSy0rV1r4a97\n9+qD/fbtwMqVFiicwSM42BZnWY8csett396uISrKyr95s31ewcEWIp3NzCEhtq5dO/sM27Wza3Pe\nWAHY9QYGWvkLCy0Mb99uzb2rVtk527Sx0OYM2cXFdvz+/YF+/cpvpjh82ILf2rW2/5o1wHPPWTlP\nBoMQUe0aIwhdAmCUqk5wvL4awEBVva26fRiEiIjqjkGIqHb1cD+SZ4jIjSKSJSJZuTXdjkVERER0\nkhojCG0H0KnC646OdZWo6quqmqGqGTGnOLoqERERkSuNEYQWA+guIl1EJAjAOADTG6EcRERE5OMa\nfBwhVS0VkdsAfAm7ff5NVV3R0OUgIiIiapQBFVX1cwCfN8a5iYiIiJyabGdpIiIiIk9jECIiIiKf\nxSBEREREPqtZzD4vIrkANp/k7m0A7K3H4jQXvnjdvnjNgG9eN6/ZPfGqyvFHiGrQLILQqRCRLF8c\nWdUXr9sXrxnwzevmNRNRfWHTGBEREfksBiEiIiLyWb4QhF5t7AI0El+8bl+8ZsA3r5vXTET1wuv7\nCBERERFVxxdqhIiIiK5MmNIAAAYjSURBVIhcYhAiIiIin+XVQUhERonIGhFZJyIPNnZ5PEFEOonI\ndyKyUkRWiMidjvWtROQrEclxPEY3dlnrm4j4i8jPIjLT8bqLiCx0fN9TRCSosctY30QkSkQ+EZHV\nIrJKRAZ7+3ctInc7/razReQDEQn2xu9aRN4UkT0ikl1hncvvVsyLjutfLiKnNV7JiZo3rw1CIuIP\n4J8AzgeQCuByEUlt3FJ5RCmA/1PVVACDANzquM4HAXyjqt0BfON47W3uBLCqwutnAPxVVRMBHABw\nQ6OUyrP+DmC2qiYD6A27fq/9rkUkDsAdADJUNR2AP4Bx8M7v+m0Ao6qsq+67PR9Ad8dyI4CXG6iM\nRF7Ha4MQgAEA1qnqBlUtBvAhgAsbuUz1TlV3qupPjuf5sB/GONi1TnJsNgnAmMYpoWeISEcAvwbw\nuuO1ABgB4BPHJt54zZEAzgDwBgCoarGqHoSXf9cAAgCEiEgAgFAAO+GF37WqzgWwv8rq6r7bCwFM\nVvMjgCgRiW2YkhJ5F28OQnEAtlZ4vc2xzmuJSAKAvgAWAminqjsdb+0C0K6RiuUpfwNwP4Ayx+vW\nAA6qaqnjtTd+310A5AJ4y9Ek+LqIhMGLv2tV3Q7gOQBbYAEoD8ASeP937VTdd+tz/38j8hRvDkI+\nRUTCAXwK4C5VPVTxPbUxErxmnAQRuQDAHlVd0thlaWABAE4D8LKq9gVwGFWawbzwu46G1X50AdAB\nQBhObD7yCd723RI1Fd4chLYD6FThdUfHOq8jIoGwEPSeqk51rN7trCp3PO5prPJ5wOkARovIJliT\n5whY35koR/MJ4J3f9zYA21R1oeP1J7Bg5M3f9UgAG1U1V1VLAEyFff/e/l07Vffd+sz/34g8zZuD\n0GIA3R13lwTBOlhOb+Qy1TtH35g3AKxS1RcqvDUdwHjH8/EApjV02TxFVR9S1Y6qmgD7Xr9V1SsB\nfAfgEsdmXnXNAKCquwBsFZEejlVnA1gJL/6uYU1ig0Qk1PG37rxmr/6uK6juu50O4BrH3WODAORV\naEIjojrw6pGlReRXsL4k/gDeVNUnG7lI9U5EhgKYB+AXlPeXeRjWT+gjAJ0BbAYwVlWrdsRs9kTk\nTAD3quoFItIVVkPUCsDPAK5S1aLGLF99E5E+sA7iQQA2ALgO9g8ar/2uReRPAC6D3SH5M4AJsP4w\nXvVdi8gHAM4E0AbAbgB/BPAZXHy3jlD4EqyZ8AiA61Q1qzHKTdTceXUQIiIiIqqJNzeNEREREdWI\nQYiIiIh8FoMQERER+SwGISIiIvJZDEJERETksxiEyOeIyDERWSoiy0TkJxEZUsv2USLyOzeO+72I\nZNRfSYmIyNMYhMgXFapqH1XtDeAhABNr2T4KQK1BiIiImh8GIfJ1EQAOADZfm4h846gl+kVELnRs\n8zSAbo5apGcd2z7g2GaZiDxd4XiXisgiEVkrIsMc2/qLyLMislhElovITY71sSIy13HcbOf2RETU\ncAJq34TI64SIyFIAwQBiYXOVAcBRAL9R1UMi0gbAjyIyHTaxabqq9gEAETkfNhHoQFU9IiKtKhw7\nQFUHOEY1/yNsrqwbYFMg9BeRFgDmi8h/AVwE4EtVfVJE/AGEevzKiYioEgYh8kWFFULNYACTRSQd\ngAB4SkTOgE1XEgegnYv9RwJ4S1WPAECV6Syck94uAZDgeH4ugF4i4pwbKxJAd9h8eG86Js39TFWX\n1tP1ERGRmxiEyKep6gJH7U8MgF85HvupaoljdvvgOh7SOd/VMZT/9yUAblfVL6tu7Ahdvwbwtoi8\noKqTT+IyiIjoJLGPEPk0EUmGTcq7D1ZTs8cRgs4CEO/YLB9Aywq7fQXgOhEJdRyjYtOYK18CuMVR\n8wMRSRKRMBGJB7BbVV+DTaR6Wn1dFxERuYc1QuSLnH2EAKutGa+qx0TkPQAzROQXAFkAVgOAqu4T\nkfkikg3gC1W9zzELfJaIFAP4HMDDNZzvdVgz2U+OWcNzAYyBzTR+n4iUACgAcE19XygREdWMs88T\nERGRz/r/9uyABAAAAEDQ/9cNSVcEWWMAwJYQAgC2hBAAsCWEAIAtIQQAbAkhAGBLCAEAWwFGsYIm\n/ASBVQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 2 Epochs:\n",
      "Validation Accuracy\n",
      "   74.875% -- Centered Weights [-0.5, 0.5)\n",
      "   84.833% -- General Rule [-y, y)\n",
      "Training Loss\n",
      "    0.789  -- Centered Weights [-0.5, 0.5)\n",
      "    0.487  -- General Rule [-y, y)\n"
     ]
    }
   ],
   "source": [
    "# compare these two models\n",
    "model_list = [(model_centered, 'Centered Weights [-0.5, 0.5)'), \n",
    "              (model_rule, 'General Rule [-y, y)')]\n",
    "\n",
    "# evaluate behavior \n",
    "helpers.compare_init_weights(model_list, \n",
    "                             '[-0.5, 0.5) vs [-y, y)', \n",
    "                             train_loader,\n",
    "                             valid_loader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This behavior is really promising! Not only is the loss decreasing, but it seems to do so very quickly for our uniform weights that follow the general rule; after only two epochs we get a fairly high validation accuracy and this should give you some intuition for why starting out with the right initial weights can really help your training process!\n",
    "\n",
    "---\n",
    "\n",
    "Since the uniform distribution has the same chance to pick *any value* in a range, what if we used a distribution that had a higher chance of picking numbers closer to 0?  Let's look at the normal distribution.\n",
    "\n",
    "### Normal Distribution\n",
    "Unlike the uniform distribution, the [normal distribution](https://en.wikipedia.org/wiki/Normal_distribution) has a higher likelihood of picking number close to it's mean. To visualize it, let's plot values from NumPy's `np.random.normal` function to a histogram.\n",
    "\n",
    ">[np.random.normal(loc=0.0, scale=1.0, size=None)](https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal.html)\n",
    "\n",
    ">Outputs random values from a normal distribution.\n",
    "\n",
    ">- **loc:** The mean of the normal distribution.\n",
    "- **scale:** The standard deviation of the normal distribution.\n",
    "- **shape:** The shape of the output array."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEICAYAAABPgw/pAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAFt1JREFUeJzt3Hm4LHV95/H3Ry7IIouG48Ki13EM\nioiS3KiJj6Mj6hAVcdQkICJGHcxiND7OMCBxYYLzONEkOGOiopAbI8EhKBOVoBAFjVHRCyICF40L\nckGQ44LgEhH9zh9VR5vj2Xo5t8/55f16nvOcrqpfV327uvvT1b+q/qWqkCStf3eZdgGSpMkw0CWp\nEQa6JDXCQJekRhjoktQIA12SGmGgrwFJHpfk+mnXsRYk2ZzklCWWzyS5Jsku27Ouf2uSXJzkhYss\n25ikkmzY3nWNK8nhSf7vtOtYLQb6IpJcm+QHSb6b5KY+aO427brG1b8RP5fkLgPzTkmyeYplDeME\nYHNV/WDahYwqycv619StSc5Ictcl2h7af4B9P8lFSe43ge0vGtZrUZKdkpzTvycryeOWaX+PJOcm\n+V6SryZ59tyyqnof8JAkB6923dNgoC/t8Kq6G/Bw4BDgxCnXMyn7AEeOu5LtfYTWB9+xwDu353Yn\nKcl/ovtQOhS4H/DvgJMXabs38B7glcA9gC1As0eXy/gY8BzgphW0/QvgduBewNHAm5M8ZGD5WcBx\nE69wDTDQV6CqbgI+SBfsACR5SpLP9EdZ25K8ZmDZ3FfSY5Ncl+QbSU4aWL5Lf8T/7SRXA78yuL0k\nD+6Pom5JclWSpw0s25zkL5Oc3397+Ock905yar++a5IcssxD+hPg5MUCOcnT+u3e0tfx4IFl1yb5\n70muAL6XZEM/778luaI/Kjo9yb36Gm9L8o9J7j6wjr/rj1C/k+Sj895sS3kkcEtV/bR7qq/vlCQf\n7/fH+5L8QpIz++fm00k2DrR/UJILk3wryeeT/ObAspGf0yEcC5xeVVdV1beBPwaet0jbZwBXVdXf\nVdW/Aq8BHpbkQcttJMnOSd6Z5Jv98/jp/jl5LfAY4E39/npT3/6J/WvnO/28DKxrhyRv6B/zl4Gn\nzNvWnv1zfmOSG/rnY4ckd+23fdBA25l033zvudIdVlW3V9WpVfUx4MfLPO7dgGcCr6yq7/b3eS9w\nzECzi+c/hmZUlX8L/AHXAk/ob+8HfA5448DyxwEPpftQPBj4OvD0ftlGoIC3AbsADwN+CDy4X/46\n4J/ojrr2B64Eru+X7Qh8EXgFsBPweOA24IB++WbgG8AvAzsDHwa+AjwX2AE4BbhoicdVwAOBS4EX\n9vNOoevGAPhF4HvAE/taju/r2Wlgv1ze173LwLxP0h0R7QvcDFxG961mrsZXD9TwfGB34K7AqcDl\nA8s2A6csUvvvA+fNm3dxX98DgD2Bq4EvAE8ANgDvAP6qb7sbsA347X7ZIf2+PHACz+mzgVuW+Ltv\n3+6zwG8N1L93v95fWODxvhF487x5VwLPXMHr90XA+4Bd+9fFLwN7DOyzF86r4TbgWf1z/jLgjoHX\nx+8A1/TP+T2Ai/qaN/TLzwXe2u/fewKfAl7ULzsDeO285/AD/e37LrPPnr3A47oeeNwSj/sQ4Pvz\n5v1X4H0D0/fo699j2jkz6b+pF7BW/+hC6rv9C72ADwF7LdH+VODP+9tzb/79BpZ/Cjiyv/1l4LCB\nZcfxs0B/DN3XyrsMLD8LeE1/ezPwtoFlfwBsHZh+KN1R7GJ1FvDvgScDX6X70BgM9FcCZw+0vwtw\nw9ybqN8vz19gXx09MP1uBoKor/H/LVLPXn1New48vsUC/STgXfPmXQycNDD9p8D5A9OH039gAL8F\n/NO8+7+VgQ+bUZ/TIV5XX5r33O/Yr3fjAm1PB143b94/A89bwXaeD3wcOHiBZRdz50B/LvDJgenQ\nBedcoH8Y+J2B5U/qa95A9yH+Q/oP9375UfQHFXQfrF+aV/9zx3hfLhfojwFumjfvvwAXL7DP7ztq\nHWv1zy6XpT29qnanO3J7EN2RDABJHpnuJNVsku/QHcXsPe/+g/193wfmTqruQ3ekOOerA7f3AbZV\n1U/mLd93YPrrA7d/sMD0sidvq+of6N4cL5q3aJ/Bevo6ts3b/jZ+3opq6r+Kvy7Jl5LcSvdhAD+/\n7xbybboj+5G2Tddn/ci+G+CWJLfQ9bHeu69tnOd0pb4L7DEwPXf7thW0nWu/UNv5/oaum/BdSb6W\n5E+S7LhI2zu9HqtLvW2LLefOr9f70QXkjQP79K10R+rQHc3v2u/bjXTdlueuoP5RrWSfzb2GblnF\nOqbCQF+BqvoI3ZHjGwZm/y1d39z+VbUn8BYG+h2XcSPd19c59x24/TVg/wxchdIvv2HIslfiJLqu\nnV3nbf+nV1IkCV2tg9sfZ4jOZwNH0B257Ul35Asr23dX0HUJjWob8JGq2mvg725V9bv98pGf0yRH\n933Si/3NPcdX0XXXzHkY8PWq+uYCq71T275/+AH9/CVV1Y+q6uSqOhD4NeCpdEfi8PPP351ejwPP\n+YLLufPrdRvdEfreA/t0j6p6SF/Hj4Gz6Y7ajwLeX1W39du57zL77OjlHucCvgBsSPLAgXkP4877\n7MHAtVV16wjrX9MM9JU7FXhikrk32O7At6rqX5M8gi6oVups4MQkd0+yH12XxJxL6I78jk+yY7pL\ntA4H3jX2I5inqi6m65M9dl5tT0l3udyOwMvp3rAfn9Bmd+/X9026D5L/OcR9PwXslWTfZVsu7P3A\nLyY5pt+3Oyb5lfzspO/Iz2lVndl/OCz2d13f9B3AC5IcmGQv4I/oDhYWci5wUJJnJtkZeBVwRVVd\nA5DkNUkuXuiOSf5jkocm2QG4FfgRMPet7+t0V9fMOY/uUr5npDtR/hL6by29s4GXJNkv3cntEwYe\n943ABcCfJtkjyV2SPCDJYwfu/7d03V1H97fn7nvdMvvszIHHc9d+HwDs1J/0/bkP26r6Ht2VQf8j\nyW5JHk13APE3A80eC5y/0H5b7wz0FaqqWbo346v6Wb9H96K5rZ939hCrO5nua+tX6N4MP32xVdXt\ndAH+63Qn7P6Srs/xmnEfwyL+iO4k0dz2P093edj/6bd/ON3lm7dPaHvvoHvsN9CdwPzkSu/Y17C5\nr29o/ZHhk+gu2fwaXffJ/6I7OQvjPacrreEDdFcZXQRcR7cvXj23PN3VRUf3bWfprth4LV130yO5\n8+Wm+9P1SS/k3sA5dGG+FfgIP3udvRF4Vrqrov53VX0D+A26k/XfpDtpPrjet9F133yW7mT3e+Zt\n67l052Ku7us8B7jPwGO+hO5E+z6MHqSfp+s+27ev5Qf03ySTvCLJ4Hp/j+7E9c10559+t6oGj9CP\nousWak76kwTSupBkhu4KoUNqHf+4aBKSXA4cukh3jRaQ5HDgmKr6zWUbr0MGuiQ1wi4XSWqEgS5J\njTDQJakR23Vwpb333rs2bty4PTcpSevepZde+o2qmlmu3XYN9I0bN7Jly5btuUlJWveSfHX5Vna5\nSFIzDHRJaoSBLkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0aYI2nnDetEvQv2EGuiQ1\nwkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1IhlAz3JGUluTnLl\nwLzXJ7kmyRVJzk2y1+qWKUlazkqO0DcDh82bdyFwUFUdDHwBOHHCdUmShrRsoFfVR4FvzZt3QVXd\n0U9+EthvFWqTJA1hEn3ozwfOn8B6JEljGCvQk5wE3AGcuUSb45JsSbJldnZ2nM1JwPobc3y91av1\na+RAT/I84KnA0VVVi7WrqtOqalNVbZqZmRl1c5KkZWwY5U5JDgOOBx5bVd+fbEmSpFGs5LLFs4BP\nAAckuT7JC4A3AbsDFya5PMlbVrlOSdIylj1Cr6qjFph9+irUIkkag78UlaRGGOiS1AgDXZIaYaBL\nUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGga82YxrjhG084b0XbdUxzrQcGuiQ1\nwkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS1IhlAz3JGUluTnLl\nwLx7JLkwyb/0/+++umVKkpazkiP0zcBh8+adAHyoqh4IfKifliRN0bKBXlUfBb41b/YRwF/3t/8a\nePqE65IkDWnUPvR7VdWN/e2bgHtNqB5J0ojGPilaVQXUYsuTHJdkS5Its7Oz425OGslaGM98LdSg\nto0a6F9Pch+A/v/NizWsqtOqalNVbZqZmRlxc5Kk5Ywa6O8Fju1vHwv8/WTKkSSNaiWXLZ4FfAI4\nIMn1SV4AvA54YpJ/AZ7QT0uSpmjDcg2q6qhFFh064VokSWPwl6KS1AgDXZIaYaBLUiMMdElqhIEu\nSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS4uYxHC3Dpmr7clAl6RGGOiS1AgDXZIaYaBLUiMM\ndElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1Ijxgr0JC9LclWSK5OclWTnSRUmSRrO\nyIGeZF/gJcCmqjoI2AE4clKFSZKGM26XywZglyQbgF2Br41fkiRpFCMHelXdALwBuA64EfhOVV0w\nv12S45JsSbJldnZ29EqleYYda3yu/Urut1SbjSec5zjnWpPG6XK5O3AEcH9gH2C3JM+Z366qTquq\nTVW1aWZmZvRKJUlLGqfL5QnAV6pqtqp+BLwH+LXJlCVJGtY4gX4d8KgkuyYJcCiwdTJlSZKGNU4f\n+iXAOcBlwOf6dZ02obokSUPaMM6dq+rVwKsnVIskaQz+UlSSGmGgS1IjDHRJaoSBLkmNMNAlqREG\nuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0TdVqjCs+yjq39xjno9YoLcVAl6RGGOiS1AgDXZIaYaBL\nUiMMdElqhIEuSY0w0CWpEQa6JDXCQJekRhjoktQIA12SGmGgS1Ijxgr0JHslOSfJNUm2JvnVSRUm\nSRrOhjHv/0bgA1X1rCQ7AbtOoCZJ0ghGDvQkewL/AXgeQFXdDtw+mbIkScMap8vl/sAs8FdJPpPk\n7Ul2m98oyXFJtiTZMjs7O8bmtFqmNc72ONudu++w65jkY53UutbaerR+jRPoG4BfAt5cVYcA3wNO\nmN+oqk6rqk1VtWlmZmaMzUmSljJOoF8PXF9Vl/TT59AFvCRpCkYO9Kq6CdiW5IB+1qHA1ROpSpI0\ntHGvcvkD4Mz+CpcvA789fkmSpFGMFehVdTmwaUK1SJLG4C9FJakRBrokNcJAl6RGGOiS1AgDXZIa\nYaBLUiMMdElqhIEuSY0w0CWpEQa6JDXCQNfELTQu98YTzhtpvO6V3Gdu3cOsf7G2C61nqfUOth91\njPZRTOKxqj0GuiQ1wkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGGOiS\n1AgDXZIaMXagJ9khyWeSvH8SBUmSRjOJI/SXAlsnsB5J0hjGCvQk+wFPAd4+mXIkSaMa9wj9VOB4\n4CeLNUhyXJItSbbMzs6OuTltb+OMu73YGOUrHXN8ofHFV1rPSu4z7Djhy42LPsz03LzFxlIfHON9\nmPHZxzHqmPVaO0YO9CRPBW6uqkuXaldVp1XVpqraNDMzM+rmJEnLGOcI/dHA05JcC7wLeHySd06k\nKknS0EYO9Ko6sar2q6qNwJHAh6vqOROrTJI0FK9Dl6RGbJjESqrqYuDiSaxLkjQaj9AlqREGuiQ1\nwkCXpEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjTDQJakRBrokNcJAX8NWc9zrYbY1zrjkw2xnbvli\nY4CvZJurPZ73OOPDz82b1Pjs46xjoedU65+BLkmNMNAlqREGuiQ1wkCXpEYY6JLUCANdkhphoEtS\nIwx0SWqEgS5JjTDQJakRBrokNcJAl6RGjBzoSfZPclGSq5NcleSlkyxMkjScDWPc9w7g5VV1WZLd\ngUuTXFhVV0+oNknSEEY+Qq+qG6vqsv72bcBWYN9JFSZJGs5E+tCTbAQOAS5ZYNlxSbYk2TI7OzuJ\nza1r44w/PYkxyBcaZ3z+9FLjpS83VvmwY62vdWul9lHGYV/uuVzp/Zd7zWjtGDvQk9wNeDfwh1V1\n6/zlVXVaVW2qqk0zMzPjbk6StIixAj3JjnRhfmZVvWcyJUmSRjHOVS4BTge2VtWfTa4kSdIoxjlC\nfzRwDPD4JJf3f0+eUF2SpCGNfNliVX0MyARrkSSNwV+KSlIjDHRJaoSBLkmNMNAlqREGuiQ1wkCX\npEYY6JLUCANdkhphoEtSIwx0SWqEgT5hS40LvlDbxdotdf+FxqteyRjYKx0He7XrH6ftMFbymNei\nlTz3c7eHGfN8ftthXqvz77/cWOnLLRtmu1o5A12SGmGgS1IjDHRJaoSBLkmNMNAlqREGuiQ1wkCX\npEYY6JLUCANdkhphoEtSIwx0SWqEgS5JjRgr0JMcluTzSb6Y5IRJFSVJGt7IgZ5kB+AvgF8HDgSO\nSnLgpAqTJA1nnCP0RwBfrKovV9XtwLuAIyZTliRpWKmq0e6YPAs4rKpe2E8fAzyyql48r91xwHH9\n5AHA50esdW/gGyPedzVZ13CsazjWNZy1WheMV9v9qmpmuUYbRlz5ilXVacBp464nyZaq2jSBkibK\nuoZjXcOxruGs1bpg+9Q2TpfLDcD+A9P79fMkSVMwTqB/Gnhgkvsn2Qk4EnjvZMqSJA1r5C6Xqroj\nyYuBDwI7AGdU1VUTq+znjd1ts0qsazjWNRzrGs5arQu2Q20jnxSVJK0t/lJUkhphoEtSI9ZloCd5\neZJKsve0awFI8sdJrkhyeZILkuwz7ZoAkrw+yTV9becm2WvaNQEk+Y0kVyX5SZKpX2K2FoewSHJG\nkpuTXDntWgYl2T/JRUmu7p/Dl067JoAkOyf5VJLP9nWdPO2aBiXZIclnkrx/Nbez7gI9yf7Ak4Dr\npl3LgNdX1cFV9XDg/cCrpl1Q70LgoKo6GPgCcOKU65lzJfAM4KPTLmQND2GxGThs2kUs4A7g5VV1\nIPAo4PfXyP76IfD4qnoY8HDgsCSPmnJNg14KbF3tjay7QAf+HDgeWDNnc6vq1oHJ3VgjtVXVBVV1\nRz/5SbrfCkxdVW2tqlF/MTxpa3IIi6r6KPCtadcxX1XdWFWX9bdvowupfadbFVTnu/3kjv3fmngf\nJtkPeArw9tXe1roK9CRHADdU1WenXct8SV6bZBtwNGvnCH3Q84Hzp13EGrQvsG1g+nrWQECtB0k2\nAocAl0y3kk7frXE5cDNwYVWtibqAU+kOQn+y2hta9Z/+DyvJPwL3XmDRScAr6Lpbtrul6qqqv6+q\nk4CTkpwIvBh49Vqoq29zEt1X5TO3R00rrUvrV5K7Ae8G/nDeN9SpqaofAw/vzxWdm+SgqprqOYgk\nTwVurqpLkzxutbe35gK9qp6w0PwkDwXuD3w2CXTdB5cleURV3TStuhZwJvAPbKdAX66uJM8Dngoc\nWtvxRwdD7K9pcwiLISXZkS7Mz6yq90y7nvmq6pYkF9Gdg5j2SeVHA09L8mRgZ2CPJO+squesxsbW\nTZdLVX2uqu5ZVRuraiPdV+Nf2h5hvpwkDxyYPAK4Zlq1DEpyGN1XvadV1fenXc8a5RAWQ0h3NHU6\nsLWq/mza9cxJMjN3FVeSXYAnsgbeh1V1YlXt12fWkcCHVyvMYR0F+hr3uiRXJrmCrktoTVzKBbwJ\n2B24sL+k8i3TLgggyX9Ocj3wq8B5ST44rVr6k8ZzQ1hsBc5e5SEsViTJWcAngAOSXJ/kBdOuqfdo\n4Bjg8f1r6vL+6HPa7gNc1L8HP03Xh76qlwiuRf70X5Ia4RG6JDXCQJekRhjoktQIA12SGmGgS1Ij\nDHRJaoSBLkmN+P+AaRWt3OsxbAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "helpers.hist_dist('Random Normal (mean=0.0, stddev=1.0)', np.random.normal(size=[1000]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's compare the normal distribution against the previous, rule-based, uniform distribution.\n",
    "\n",
    "Below, we define a normal distribution that has a mean of 0 and a standard deviation of $y=1/\\sqrt{n}$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# takes in a module and applies the specified weight initialization\n",
    "def weights_init_normal(m):\n",
    "    classname = m.__class__.__name__\n",
    "    # for every Linear layer in a model..\n",
    "    if classname.find('Linear') != -1:\n",
    "        # get the number of the inputs\n",
    "        n = m.in_features\n",
    "        y = (1.0/np.sqrt(n))\n",
    "        m.weight.data.normal_(0, y)\n",
    "        m.bias.data.fill_(0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Net(\n",
       "  (fc1): Linear(in_features=784, out_features=256, bias=True)\n",
       "  (fc2): Linear(in_features=256, out_features=128, bias=True)\n",
       "  (fc3): Linear(in_features=128, out_features=10, bias=True)\n",
       "  (dropout): Dropout(p=0.2)\n",
       ")"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# create a new model with the rule-based, uniform weights\n",
    "model_uniform_rule = Net()\n",
    "model_uniform_rule.apply(weights_init_uniform_rule)\n",
    "\n",
    "# create a new model with the rule-based, NORMAL weights\n",
    "model_normal_rule = Net()\n",
    "model_normal_rule.apply(weights_init_normal)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nOI7jOE6V8v+oQVT8DXycNwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 2 Epochs:\n",
      "Validation Accuracy\n",
      "   85.442% -- Uniform Rule [-y, y)\n",
      "   85.233% -- Normal Distribution\n",
      "Training Loss\n",
      "    0.318  -- Uniform Rule [-y, y)\n",
      "    0.333  -- Normal Distribution\n"
     ]
    }
   ],
   "source": [
    "# compare the two models\n",
    "model_list = [(model_uniform_rule, 'Uniform Rule [-y, y)'), \n",
    "              (model_normal_rule, 'Normal Distribution')]\n",
    "\n",
    "# evaluate behavior \n",
    "helpers.compare_init_weights(model_list, \n",
    "                             'Uniform vs Normal', \n",
    "                             train_loader,\n",
    "                             valid_loader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The normal distribution gives us pretty similar behavior compared to the uniform distribution, in this case. This is likely because our network is so small; a larger neural network will pick more weight values from each of these distributions, magnifying the effect of both initialization styles. In general, a normal distribution will result in better performance for a model.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "### Automatic Initialization\n",
    "\n",
    "Let's quickly take a look at what happens *without any explicit weight initialization*."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model_no_initialization = Net()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nskZ17dp1r78DoiqwN2/eHOnp6ZEuBhFRmSEivrNAFlqFChUm169fv01CQsIvMTEx7N8No5ycHMnM\nzEzZs2fPZAAX+TuGd1ZERFRc7RISEn5lUA+/mJgYTUhIOARrHfF/TAmWh4iIolMMg3rJcf7WAeM3\nAzsREVEUYWAnIqIyT0S63nDDDb8v6vTwww8njhkzpmEw5+bk5KBWrVodMzMzYwFg27ZtFUWk66xZ\ns35fgbBWrVod9+zZE3C1w7feeqvGgw8+6G8Vyd99/PHH1c4555zT/e17/PHH6x0+fDgkMZmBnYiI\nyrxKlSrpp59+Wmv37t2FTgqPiYlBp06djn799ddVAeCbb76Jb9OmzbH58+fHA8CKFSviatasmVW/\nfv3sQNcYNmzYoaeffnpPoP0FmThxYuKRI0cY2ImIiAAgNjZWr7vuusynn3460Xffhg0bKvXs2TMp\nKSkpJS0tLSkjI6OS7zE9evQ4smDBgngAWLBgQdVbb73158WLF1cFgDlz5lTt1q3bEQDYtWtXhf79\n+7dq165dm3bt2rX54osv4gFg7Nixda677rqmALBmzZq4jh07JiclJaXccccdDatUqdLZ/ZyjR4/G\nDhgwoGWLFi3aXnTRRS1ycnLw5JNP1tu7d2/Fs88+O6lHjx5JWVlZuPTSS5u3bt26bVJSUspjjz1W\nrzB/i6ga7kZERBH2pz81werVVUJ6zXbtjmHKlO0FHXbvvffubd++fdtHH300V8355ptvbjps2LD9\nt99++/5//vOfdW6++eYmX3755WbvY84666wjTzzxREMAWLZsWfzzzz+/a/z48YkA8N1331VNS0s7\nCgA33nhjkzFjxvzcv3//IxkZGZX69+/fesuWLWu8r3Xbbbc1ueWWW/beeOONB/72t7/lmiNg3bp1\npy1fvnxL8+bNT3Xt2jV59uzZVR966KG948ePT5w7d+7GBg0aZM2fP7/K7t27K2ZkZKwBgH379gXs\nAvCHNfaTJ4G//x1YuDDSJSEiomKoXbt2zuWXX77/2WefzVXD/eGHH+JHjx59AABuvvnmA0uXLq3q\ne26fPn2OrV27tsqvv/4ak5WVJTVq1Mhp2rTpidWrV8elp6dX7du37xEAWLBgQfU777yzaXJycsqF\nF154+pEjR2IPHToU4/N5Vf/0pz8dAIBRo0bt997Xvn37o61atToVGxuLtm3bHtu8eXOe1oPk5OQT\n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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "After 2 Epochs:\n",
      "Validation Accuracy\n",
      "   84.458% -- No Weights\n",
      "Training Loss\n",
      "    0.530  -- No Weights\n"
     ]
    }
   ],
   "source": [
    "model_list = [(model_no_initialization, 'No Weights')]\n",
    "\n",
    "# evaluate behavior \n",
    "helpers.compare_init_weights(model_list, \n",
    "                             'No Weight Initialization', \n",
    "                             train_loader,\n",
    "                             valid_loader)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Default initialization\n",
    "\n",
    "Something really interesting is happening here. You may notice that the red line \"no weights\" looks a lot like our uniformly initialized weights. It turns out that PyTorch has default weight initialization behavior for every kind of layer. You can see that **linear layers are initialized with a uniform distribution** (uniform weights _and_ biases) in [the module source code](https://pytorch.org/docs/stable/_modules/torch/nn/modules/linear.html).\n",
    "\n",
    "---\n",
    "\n",
    "However, you can also see that the weights taken from a normal distribution are comparable, perhaps even a little better! So, it may still be useful, especially if you are trying to train the best models, to initialize the weights of a model according to rules that *you* define.\n",
    "\n",
    "And, this is not the end of your learning path! You're encouraged to look at the different types of [common initialization distributions](https://pytorch.org/docs/stable/nn.html#torch-nn-init). As you continue to learn in the classroom, you'll also see more resources for learning about and practicing weight initialization!"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
